class A {
public A() {
init();
}
public void init() {
}
}
public class B extends A {
int i;
int s=1;
public void init(){
i = 100;
s = 100;
}
public void println() {
System.out.println(i);
System.out.println(s);
}
public static void main(String[] arg) {
new B().println();
}
}
这个不用你说,它的输出结果是
100
1
为什么,请解释说明,并列出程序的执行流程,分就给你了!
程序执行的时候会递归调用父类的构造方法,每个类都有一个默认的super(),当B调用A的构造方法时,A的构造方法中制定了init(),B中对init()方法进行了重载,此时i=100,s=100,然后会到B中 定义成员变量s=1, 然后执行println() 输出 100 1
本回答被提问者采纳