为了账号安全,请及时绑定邮箱和手机立即绑定

关于继承中父类引用子类对象的问题

关于继承中父类引用子类对象的问题

慕桂英4014372 2018-12-07 11:08:43
3、父类变量引用子类对象     father f1 = new son()     父类有(ABC方法),子类有(CDF方法),f1接收子类对象,子类中的D、F方法被屏蔽,f1拥有A、B、(子类中的)C方法   请问这属于多态的问题吗?一直很不明白这种引用。
查看完整描述

2 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

属于,这种方式就是属于多态,但这不是一个问题。如果你想调用d,f方法的话,江f1强制转换就行了。

son s1=(son)f1;这样你的s1就代替了f1可以调用d,f方法。其实你可以这样想,儿子穿上父亲伪装之后自能用父亲的方法,不然会露馅。当要当回自己的时候要卸下伪装。就是类型转换。

查看完整回答
反对 回复 2018-12-16
?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

java没研究,应该和.net 一样

1.这种引用 就是 类型转换,左右两边类型不一,隐式的转换,换成其它元数据类型就好理解了。

2.如果 父类方法为虚或者抽象方法,才可考虑多态。非虚方法 而子类又有重名方法,这是违反了里氏替换原则,不推荐的,而且 非虚和虚方法会导致子类的方法表不一样,内存分配上也是不一样的。

查看完整回答
反对 回复 2018-12-16
  • 2 回答
  • 0 关注
  • 562 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信