public class Base {
Base(){
priate();
}
String className="Base";
public void priate(){
System.out.println("Base "+className);
}
}
class Sub extends Base{
String className="sub";
@Override
public void priate() {
System.out.println("ccc "+className);
}
}
class Tests{
public static void main(String[] args) {
Base sub = new Sub();
}
}
程序运行结果:
ccc null
<br /> 上述程序中,应用了多态(父类的引用指向子类的对象)。当程序运行时候,会先执行父类的构造器,此时发现需要调用priate()方法,因为多态的原因,回去调用子类的priate()方法。而此时,子类中的普通域并没有初始化,所以就会为null