我们知道多态就是指多个类继承同一个父类,然后重写父类方法,说是可以增加程序的扩展性和利于维护,可是我想不通,假设现在有一个父类“Animal” ,里面有“Run”函数,Cat和Dog都继承于它并拥有各自的Run方法,利用animal引用对象指向Cat或者Dog的实例化对象,然后调用他们各自的Run方法,ok,我现在不这么干了,我不写Animal类了,直接写Cat和Dog让他们拥有同一个Run方法,然后实例化各自对象调用各自的Run方法,原谅我,我貌似感觉这两种方式扩展性差不多。。。。我如果想再添加一个鸟类的跑步方法,直接再写个Bird类然后写个Run方法不也一样吗?新人求教,表示这里有点晕晕的,多态的可扩展性究竟体现在哪里?谢谢了~
根据你这个例子做个延伸,现在要开一个动物运动会,其中有一个长跑项目,参加的动物有Cat,Dog,Bird,那么你要怎么实现长跑这个方法? 你是不是会这么定义:
void changpao(Cat cat,Dog dog,Bird bird) ,然后调用各自的run方法?
如果多一个参与者,你就要修改changpao的定义? ######豁然开朗,谢谢了大神!###### 在这个例子里面,我认为可扩展性体现在你可以给bird添加run方法,或者不添加;不添加,你在bird上面调用的就是默认的方法; ######这里涉及到一个概念,向上和向下转型。。楼主自己去百度吧
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。