猿问

java静态内部类

package test;

public class test {
private String baseName = "base";

public test() {
callName();
}

public void callName() {
System.out.println(baseName);
}

static class Sub extends test {
private String baseName = "sub";

public void callName() {
System.out.println(baseName);
}

}

public static void main(String[] args) {
test bb = new Sub();
}
}

为什么输出结果为 null?

富国沪深
浏览 539回答 1
1回答

MMMHUHU

父类先初始化,并且父类构造函数调用了callName()方法,子类会覆盖这个方法,但是子类这时候还没初始化,所以只能打印默认值(null)
随时随地看视频慕课网APP

相关分类

Java
我要回答