黑马程序员技术交流社区

标题: 关于继承抽象类是否多态的问题 [打印本页]

作者: 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