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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

C:设计理念区别       

抽象类 被继承体现的是:”is a”的关系。抽象类中定义的是该继承体系的共性功能。

接口 被实现体现的是:”like a”的关系.接口中定义的是该继承体系的扩展功能。

”is a”和”like a”是什么呢..举几个例子看看,不知所云!!{:2_41:}

8 个回复

倒序浏览
感觉,理解并着重记忆抽象类侧重共性功能,接口侧重扩展功能就行了 {:3_56:}
回复 使用道具 举报
还没学到.
回复 使用道具 举报
例如 Cat 类就是一个抽象类 继承自动物类,Cat is a Animal;培训出来的会跳高的猫,跳高是个接口Jump,猫类Cat实现跳高接口,猫像运动员一样跳高,这个跳高是后天扩展的功能。
回复 使用道具 举报 1 0
Insomnia! 发表于 2016-7-8 11:24
例如 Cat 类就是一个抽象类 继承自动物类,Cat is a Animal;培训出来的会跳高的猫,跳高是个接口Jump,猫类C ...

恩恩.说得( ^_^ )不错嘛
回复 使用道具 举报
shuiwa 来自手机 中级黑马 2016-7-8 11:56:41
地板
接口扩展了很多功能
回复 使用道具 举报 1 0
瞧一瞧,看一看,进来是看回复的。
回复 使用道具 举报
Java中类的继承关系,描述的是同一个体系中的事物。比如猫、狗等他们“都是”动物——即“is a”关系,所以猫和狗属于同一个体系——动物体系。那么,我们就把猫、狗他们共同的属性和行为抽取出来,放到一个类中,这个类就是父类——动物类。所谓父类一般都是一个抽象的概念,或者说一个抽象的名词(动物),而子类代表的是具体的事物(猫、狗)。当我们在设计程序的时候,考虑到父类并不描述具体事物,为了避免业务逻辑上的混乱,把父类设计成abstract修饰,即抽象类,可以达到不让别人直接new它的对象的功能,也可以强制要求子类去实现某些功能的效果。这就是为什么要设计成抽象类的原因。
Java中接口的设计理念,从某种角度上讲,是为了扩展功能。比如猴子是一个动物,所以它应该继承自动物类。但猴子很聪明,它能够模仿人类的很多行为,而“模仿”这个功能不是所有的动物都具备的,所以就是猴子的扩展功能。比如猴子模仿人类穿着衣服,它就“像”一个人——即“like a”的关系。我们把“模仿”的功能定义在接口里,猴子类继承动物类的同时,再去实现这个接口就可以了。如果有其它的动物也具有模仿能力,让它也去实现该接口就行了,比如海豚。
综上所述,抽象类更倾向于一个父类,只是在使用时不允许直接new对象等操作,而接口更倾向于功能的扩展:在接口里定义一个功能,谁有需要,谁就来实现即可。其它的区别,就是二者语法上的区别了。
回复 使用道具 举报 2 0
huangruqi888 发表于 2016-7-8 15:58
Java中类的继承关系,描述的是同一个体系中的事物。比如猫、狗等他们“都是”动物——即“is a”关系,所以 ...

说的挺全面的~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马