认识
在继承或实现情况下的一种现象,表现为:对象多态,行为多态。
对象多态
行为多态
然后a1.run().编译看左边java基础多态概念,运行看右边,也就是说,会先看Animal里面有没有run,如果没有,那么直接报错。然后运行的时候会找子类Wolf的方法来调用。也就是说必定存在子类的方法重写·。所以多态下不能调子类独有的方法。
如果想要调用子类独有的方法,那么可以采用强制类型转换,强制转换类型为子类的。
注意
而对于成员变量来说,编译看左边,运行也看左边。如Animal和Wolf都有成员变量name,当我访问a1.name,实际上会出现Animal的name。
好处
理解来说,成员变量不需要多态,而在多态形式下,右边对象是解耦合的,更便于扩展和维护。各个部分可以随时拼装(其中一个不好用,可以只换掉这个,而不改变其他)。
定义方法时,使用父类类型的形参,可以接收一切子类对象,扩展性更强,更便利。
类型转换
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/24807.html