java中当父类引用指向子类对象时,那么这个引用可不可以调用子类中的属性和方法呢?

如题所述

多态。
如果说父类中有这个属性跟方法,子类有重写过,那么调用的是子类中的属性跟方法。
如果父类中没有这个属性跟方法,那么子类调用就会出错。
如果父类有这个属性跟方法,而子类没有,则调用的是父类的属性跟方法。追问

首先谢谢你的回答,还想问一下,是不是一般用到“父类引用指向子类对象”的时候都要在子类重写父类的属性和方法以实现多态?你说的后两种情况是不是很少见?

追答

子类重写父类的属性和方法以实现多态
这种方法很常见的,毕竟我们有时候写代码都是子类比父类具有更强大的功能的木。当然不想重新定义,重写父类的方法在这个时候就其作用了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-13
父类不可以调用子类特有的方法和属性,
但是可以调用从父类继承的方法.
第2个回答  2011-12-12
强制转换为子类对象后,可以引用。不转换应该会出错。