黑马程序员技术交流社区
标题: 关于继承抽象类是否多态的问题 [打印本页]
作者: luyang18 时间: 2016-1-3 21:42
标题: 关于继承抽象类是否多态的问题
一个抽象类类定义了抽象方法,被另外一个类继承,重写方法后属于多态?
继承抽象类,跟接口有什么区别?有没大神讲解下,帮我厘清下,感觉好凌乱
作者: 549208564 时间: 2016-1-3 21:57
多态:当一个类指向其父类方法时,算的上一种多态了
接品里全是抽象方法,而抽象类中不一定全是抽象的方法
作者: z.qi 时间: 2016-1-4 03:17
多态有3个基本前提和3种形式:
一,前提:
A:继承或者实现(有子类实现父类或者类实现接口)。
B:有方法重写(无论是一般方法,还是抽象方法)。
C:有父类或者父接口引用指向子类对象(核心,父 父 = new 子. 有时候是匿名类,不容易理解)。
二,3种形式(以下例子中方法重写省略):
1,子类继承父类(一般的类).
eg:
class Father{} class Son extends Father {}
Fufather = new Son(); //父类的引用指向子类对象.
2抽象类多态:
abstractclass Father {}
class Son extends Father {}
Fu father = new Son();
3:接口多态:
interfaceFather {}
class Son implements Father {}
Fu father = new Son();
作者: 不往 时间: 2016-1-4 11:13
我觉得楼主可以这么理解,注意以下几点:
1.我们用抽象类时,用的是“继承”,继承抽象类,用接口时,用的是“实现”,实现接口;
2.什么是面向对象的思想,一个类,对应到现实世界,就是一类事物;
继承抽象类,就好比,鸟是动物的一种,侧重的是继承关系,本质属性;
实现接口,就好比,我给鸟插上翅膀,让他能飞,侧重的是功能的实现;
至于多态,飞是鸟的通用技能,但是,不同的鸟飞的方式形态又五花八门,父类的方法,不同的子类实现起来各不一样,就是多态。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |