A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© woshihuoye 中级黑马   /  2016-6-10 23:43  /  633 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

什么是is a,
什么又是 like a,
这两有什么区别的{:2_30:}

3 个回复

倒序浏览
本帖最后由 why910107 于 2016-6-10 23:50 编辑

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

评分

参与人数 1黑马币 +3 收起 理由
woshihuoye + 3 赞一个!

查看全部评分

回复 使用道具 举报
"is a" 中文翻译是"什么是一个什么",强调的是继承,只能单继承或是多层继承;"like a "中文翻译是"什么像什么"强调的是体系的扩展功能属于接口,单一实现或者多实现
回复 使用道具 举报
is a是工厂设计模式,而Like a提供拓展功能.

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

评分

参与人数 1黑马币 +3 收起 理由
woshihuoye + 3 神马都是浮云

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马