黑马程序员技术交流社区
标题:
多态的实现?
[打印本页]
作者:
╃→梅飛揚之城
时间:
2014-8-4 19:05
标题:
多态的实现?
本帖最后由 ╃→梅飛揚之城 于 2014-8-5 09:21 编辑
多态的实现方面有哪几种?具体的区别是什么?
作者:
qsq0000hm
时间:
2014-8-4 19:07
虚方法
抽象方法
接口
什么时候使用虚方法实现多态?
当父类需要实例化,或者这个方法需要默认实现或者说可以默认实现的情况下,并且它的子类都应该具有这个方法的功能,用虚方法,virtual修饰,子类通过override重写。
什么时候使用抽象类抽象方法?
当父类不需要被实例化,或者说实例化一个父类没有意义,并且方法不需要默认实现的情况下,并且它的子类都应该具有这个方法的功能,用抽象类。
什么时候使用接口?
当两个类无法抽象出一个父类,但是它们有相同的方法,那么可以考虑使用接口,比如飞机类和小鸟类,它们都有飞的方法,但显然它们无法抽象出一个父类。还有一种情况就是,一个父类的子类,并不是所有子类都有相同的功能的时候,比如动物类,它的子类可以是马,猪,牛,鸟,显然并不是所有的动物类的子类都会飞,只有鸟会飞,那么把飞这个方法,写成虚方法或者抽象方法在动物类中显然不合适,那么也可以考虑使用接口。
作者:
130880130880
时间:
2014-8-5 14:35
. 同1种行为不同的事物具有不同的表现形式.
父类变量指向子类对象 不同的子类对象对于同1个方法 执行的代码却不一样.
多态的表现形式 1)将父类类型作为参数 2)将父类类型作为返回值.
父类变量指向子类对象 通过父类变量只能点出父类的成员.
实现多态的步骤:
1) 找出父类
2) 找出所有子类都具有的相同方法 但是实现方式各不一样.
3) 将这个方法在父类中标记为虚方法或者抽象方法
4) 在子类中重写.
5) 让父类变量指向子类对象(父类类型作为参数 作为返回值)
6) 调用父类变量的虚方法
1.参数不同(重载)2.参数相同(隐藏基类方法)
子类可以重写父类方法
多态-接口.PNG
(126.85 KB, 下载次数: 52)
下载附件
2014-8-5 14:35 上传
作者:
官方
时间:
2014-9-11 15:09
路过学习一下~~~
作者:
rel4x
时间:
2014-9-12 10:08
学习啦
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2