认识
在继承或实现情况下的一种现象,表现为:对象多态,行为多态。

对象多态
行为多态
然后a1.run().编译看左边java基础多态概念,运行看右边,也就是说,会先看Animal里面有没有run,如果没有,那么直接报错。然后运行的时候会找子类Wolf的方法来调用。也就是说必定存在子类的方法重写·。所以多态下不能调子类独有的方法。
如果想要调用子类独有的方法,那么可以采用强制类型转换,强制转换类型为子类的。
注意
而对于成员变量来说,编译看左边,运行也看左边。如Animal和Wolf都有成员变量name,当我访问a1.name,实际上会出现Animal的name。
好处
理解来说,成员变量不需要多态,而在多态形式下,右边对象是解耦合的,更便于扩展和维护。各个部分可以随时拼装(其中一个不好用,可以只换掉这个,而不改变其他)。
定义方法时,使用父类类型的形参,可以接收一切子类对象,扩展性更强,更便利。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/8531.html