黑马程序员技术交流社区

标题: 抽象类与接口的区别 [打印本页]

作者: woshihuoye    时间: 2016-6-10 23:43
标题: 抽象类与接口的区别
什么是is a,
什么又是 like a,
这两有什么区别的{:2_30:}
作者: why910107    时间: 2016-6-10 23:49
本帖最后由 why910107 于 2016-6-10 23:50 编辑

成员的区别:
         抽象类:
                成员变量:可以变量,也可以常量
                 构造方法:有
                 成员方法:可以抽象,也可以非抽象
        接口:
                成员变量:只可以常量                构造方法:   无
                成员方法:只可以抽象
               
关系的区别:
        类与类
            继承,单继承
        类与接口
                 实现,单实现,多实现
        接口与接口
                继承,单继承,多继承
               
设计理念的区别:
        抽象类 被继承体现的是:”is a”的关系。抽象类中定义的是该继承体系的共性功能。
        接口 被实现体现的是:”like a”的关系。接口中定义的是该继承体系的扩展功能。
        对事物本质的抽象用抽象类,对事物功能的扩展用接口

作者: syinys7    时间: 2016-6-10 23:53
"is a" 中文翻译是"什么是一个什么",强调的是继承,只能单继承或是多层继承;"like a "中文翻译是"什么像什么"强调的是体系的扩展功能属于接口,单一实现或者多实现
作者: syinys7    时间: 2016-6-10 23:57
is a是工厂设计模式,而Like a提供拓展功能.

A:成员区别
        * 抽象类:
                * 成员变量:可以变量,也可以常量
                * 构造方法:有
                * 成员方法:可以抽象,也可以非抽象
        * 接口:
                * 成员变量:只可以常量
                * 成员方法:只可以抽象
               
* B:关系区别
        * 类与类
                * 继承,单继承
        * 类与接口
                * 实现,单实现,多实现
        * 接口与接口
                * 继承,单继承,多继承




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2