public class Base {Base(){priate();}String className="Base";public void priate(){System.out.println("Base "+className);}}class Sub extends Base{String className="sub";@Overridepublic 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
