class A{
public A(){
this.fun();
}
public void fun(){
System.out.println("!!!!");
}
}
class B extends A{
private int x=100;
public B(int x){
this.x=x;
}
public void fun(){
System.out.println(this.str);
}
}
public class SuperDemo {
public static void main(String args[]){
new B(20);
}
}
因为子类的实例必须找到父类的无参构造作为出口,但是现在其父类又调用其自身的方法不能执行完就
子类就无法初始化,所以输出结果为 0 。但是在讲子类中的参数x定义为静态之后
private static int x=100;
为什么跳过父类直接执行子类的方法,这和子类实例化要先找到父类的构造方法是不是又矛盾呢?