In the following piece of code:
public class Superclass {
public static void main(
String[] args) {
System.out.println(new Subclass().methodA());
}
Superclass() {
System.out.println("SuperClass Constructor Executed");
}
private int methodB() {
System.out.println("methodB in Superclass");
return 9;
}
int methodA() {
System.out.println("methodA in Superclass");
return methodB();
}
}
class Subclass extends Superclass {
Subclass() {
System.out.println("SubClass Constructor Executed");
}
protected int methodB() {
System.out.println("methodB in Subclass");
return 1;
}
}
the answer is:
a.SuperClass Constructor Executed
b.SubClass Constructor Executed
b.methodA in Superclass
c.methodB in Superclass
d. 9
why is the methodB in the superclass invoked, why not that in the subclass, as that is the class that has been instantiated???
thanks,
------------------
lakshmi