doTest(double d)- This is a completely different method from void doTest(int d), because they have different parameter lists. There is generally no polymorphism; DerivedBaseannounces a new method without overloading Base.doTest. As if you did it:
class Base {
public void doTest(double d) {
System.out.println("From Base");
}
}
class DerivedBase extends Base {
public void doSomethingElse(int d) {
System.out.println("From Derived Base");
}
}
.
base.doTest(3), doTest(double), Base, . , Base.doTest.