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

3、父类变量引用子类对象

    father f1 = new son()

    父类有(ABC方法),子类有(CDF方法),f1接收子类对象,子类中的D、F方法被屏蔽,f1拥有A、B、(子类中的)C方法

 

请问这属于多态的问题吗?一直很不明白这种引用。

慕桂英4014372
浏览 563回答 2
2回答

holdtom

属于,这种方式就是属于多态,但这不是一个问题。如果你想调用d,f方法的话,江f1强制转换就行了。 son s1=(son)f1;这样你的s1就代替了f1可以调用d,f方法。其实你可以这样想,儿子穿上父亲伪装之后自能用父亲的方法,不然会露馅。当要当回自己的时候要卸下伪装。就是类型转换。

蝴蝶不菲

java没研究,应该和.net 一样 1.这种引用 就是 类型转换,左右两边类型不一,隐式的转换,换成其它元数据类型就好理解了。 2.如果 父类方法为虚或者抽象方法,才可考虑多态。非虚方法 而子类又有重名方法,这是违反了里氏替换原则,不推荐的,而且 非虚和虚方法会导致子类的方法表不一样,内存分配上也是不一样的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java