如果LZ是在测试类中创建了SupClass的对象,SupClass s=new SupClass(),str结果肯定是null,
因为在创建对象时子类的对象先会调用父类的构造方法,如果子类没有,会在子类中默认加个个BaseClass() {super();}。
super()就是在指向父类的构造方法,因为有重写,所以不会执行父类中的method()方法,执行的是子类中的。
现在答案出来了,因为直接调用了method()方法,它的属性 str 只是被默认初始化为null,还没有被初始化完毕,所以结果才为null。
LZ明白了吧。
|
|