为什么我的子类不能在java中正确初始化变量
在下面的代码中,myString总是初始化为null。我必须在init()或类似的程序中手动初始化。据我所知,它与超类/子类有关,但我不了解确切的机制
public class A extends B {
private String myString = "test";
public static void main(String[] args) {
new A();
}
public A() {
super();
}
public void c() {
System.out.println(myString);
}
}
public class B {
public B() {
c();
}
public void c() {
}
}
# 1 楼答案
在完全创建对象并调用超类构造函数之后,立即添加对
c();
overidden方法的调用把你的代码改成这个