5
回答
Java学习困惑
大家好,请问Java的接口、继承、抽象类这三者有什么区别啊?分别什么时候使用呢?麻烦回答详细一点
<无标签>
举报
共有5个答案 最后回答: 4年前
任何一本关于Java的书上都讲的很清楚呀。有什么好重复讲的?接口和抽象类还可以说比较得起来。你把“继承”放在这两者中间来比较是怎么回事呢?“继承”和其他两者根本不是一个位面的东西呀。

一个类只能继承一个抽象类,但一个类可以继承多个接口。

抽象类中可以有成员变量、成员方法(包括抽象方法的声明和其他有具体实现的方法),但接口中只能声明方法。

抽象类中的成员可以是私有的、共有的,但接口中的只能是公有的。

这样的对比不知道能不能让你理解。

具体什么时候该用抽象类,什么时候该用接口,要看具体情况,你先理解一下它们的概念,也许等你看看设计模式之后会更清楚什么时候该用什么。

加油!!!

--- 共有 1 条评论 ---
断桥残雪断桥残雪好的 4年前 回复

抱歉我不能详细地讲,我只能和你随便聊聊。

首先所有的编程过程都是设计活动,所有的概念都是为了解决设计上的某些问题。

在这些问题中,编程中的接口就像是现实生活中的标准、规则、制度,所以接口的作用就是用来规避类似现实生活中能力低下但是依靠家庭背景的人获得了自己不能胜任的位置这种现象,当我们想用某种规则去限制某些Java类的职责的时候,那么我们就使用接口,我之前对它的解释就是使用原则。

儿子从父亲那里继承了财产,那么儿子就是在没有进行任何具有创造价值的活动却收获了有价值的东西,同理,Java中的继承就是用来复用以前已经写过的代码。(当然,这里其实牵涉了一些比较复杂的设计问题)

抽象是指对于一个过程或者一件制品的某些细节有目的的隐藏,以便把其他方面、细节或者结构表达得更加清楚。抽象的反义词是具体,那么顾名思义,抽象类就是描述了某些特征,但是却延迟了设计的Java类。

这三者的使用方法和使用场景,依托设计师面对具体场景时候,像搭乐高积木一样去解决对应的问题,只要符合以上的使用原则,而非仅是因为在Java语法中可以实现,那么就不会有大的偏差。

以上是我的浅见。

--- 共有 3 条评论 ---
明月_出天山“但是却延迟了设计的Java类”,是“但是却延迟了实现的Java类”,打错字了 4年前 回复
断桥残雪断桥残雪好的 非常感谢 4年前 回复
断桥残雪断桥残雪点击此处输入评论 4年前 回复
抽象类只能单继承,java这样做是为了安全。接口可以多实现,算是java对多继承的一种折中。推荐给你一篇文章,写的比较详细,可以好好看看。【http://www.ibm.com/developerworks/cn/java/l-javainterface-abstract/】
顶部