码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA-初步认识-第九章-接口和抽象类的区别

时间:2017-11-11 11:26:09      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:写入   继承   内容   其他   span   log   分享   技术   领域   

一. 接口和抽象类之间的区别

抽象类定义两个方法,接口中也可以定义两个方法,那么在定义的时候,到底是定义抽象类还是接口呢?

技术分享

继承和实现是两回事。

抽烟不是学员的基本功能,是学员的扩展功能。学员要抽烟,就实现接口。

类在确定体系,接口在确定体系中的额外功能。

举例来说明,

技术分享

按照之前讲述的知识,程序就可以这么写,但是呢,我们对其做了一个改进

技术分享

将导盲的功能抽取出来,和不抽取,两者有什么区别呢?貌似不单独抽取好像更简便一些。但是引发的思考就是,不是说只有导盲犬有导盲的功能,其他的动物也有这个功能。

我继承了犬,就继承了犬的基本功能,继承了导盲,就具备了导盲功能,但是不能多继承。虽然继承不成,但是接口可以。

这样一来,两者就分工明确了。犬这个抽象类在定义的时候,定义了犬这个动物的最基本的功能。用类来定义基本功能,在问题领域分析的时候,导盲应该是额外功能。最终的形式就如下面所示。

技术分享

如果非要将导盲接口取消,将导盲功能写入导盲犬,那么程序就没有扩展性。再换个角度来说明,如果所有的导盲动能都设置在子类中,导盲犬,导盲猫,导盲猪。要想三者全部出现,要下三个命令,导盲犬上,导盲猫上,导盲猪上。这就带来了问题,有共性的内容,没有提高复用性。二,可以这么说,凡是具备导盲,全部都给我去,这样就很简答了。导盲怎么来的,是这些物种不断抽取出来的,这就显示出将导盲功能抽取出来的好处了。

下面再说一说,问题领域中的一些分析。

 

JAVA-初步认识-第九章-接口和抽象类的区别

标签:写入   继承   内容   其他   span   log   分享   技术   领域   

原文地址:http://www.cnblogs.com/wsw-bk/p/7818265.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!