java继承的问题求证
背景:1、DerivedClass extends BaseClass
2、BaseClass中有一个public方法 pm(),BaseClass并不对pm()重写。
问题:
如果在DerivedClass中某个方法中调用pm(),那么如下两条语句是否等价:
1) pm();
2) super.pm();
小弟做过实验,如果pm方法打印BaseClass中的某个private 成员,在DerivedClass中调用该方法可以正常运行,这样我认为类的继承机制中,如果DerivedClass调用其未重写的BaseClass方法时,其实是运行BaseClass的代码,在内存中DerivedClass并没有复制相应方法的代码。求懂的前辈确切地告诉我这样理解对不对?
另:如果不是方法,而是普通成员,如BaseClass中有一个public int bm;而在DerivedClass中没有重复这段代码,那么DerivedClass新增的方法获取 this.bm时是不是也是得到BaseClass的bm值?
页:
[1]