社区
Java SE
帖子详情
讨论一下抽象类与接口的区别?
hiloves
2006-03-17 11:29:07
有时抽象类和接口的作用一样,都可以让方法在子类中具体实现。只不过使用接口可以多重继承。他们在其他方面有什么区别?特别是最近在看设计模式,有时用的抽象类,有时又用接口。Faint。
...全文
295
15
打赏
收藏
讨论一下抽象类与接口的区别?
有时抽象类和接口的作用一样,都可以让方法在子类中具体实现。只不过使用接口可以多重继承。他们在其他方面有什么区别?特别是最近在看设计模式,有时用的抽象类,有时又用接口。Faint。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liang8305
2006-03-20
打赏
举报
回复
学习,占个位置
luoluonet
2006-03-20
打赏
举报
回复
抽象类中有实例变量,一般也包含一个显式的构造函数,用于子类
继承(extends),只是其中有些方法没有方法体,要等各种子类来实现各种不同的细节,而接
口中没有实例变量,只有一系列无方法体的抽象方法用于被各种类来实现(implements)。不
相关的类可以实现同一个接口(接口的强大之处),而不相关的子类却不可以继承同一个抽象
类(继承同一个抽象的各个子类一定是相关的,因为构造函数是一致的)。
grant999
2006-03-20
打赏
举报
回复
接口有属性,默认是static final
CYG369
2006-03-20
打赏
举报
回复
首先,采用他们都是为了禁止生成该类的实例,作为一个父类使用;
第二,抽象类中可以有成员变量,可以有抽象方法(需要继承他的子类去实现, 如果他的子类没有实现该抽象方法,则该子类也必须是个抽象类!),也可以有带有方法实体的方法;
而在接口中,只定义一些公共的方法名及其参数列表(同样需要实现(其实就是 继承)他的类去实现,也同样如果实现他的类没有实现接口中定义的方法,则此 类也必须是个抽象类!)。接口中没有成员变量,但它可以定义常量(必须初始化),但一般不这样做(除非一定要用接口进行常量管理),以保证接口的整洁 。
第三,java中的单继承性,接口可以多重继承 , 抽象类不可以.
所以,抽象类和接口适用的原则是:大多数情况下,应该首选接口去实现,除非 确实需要带有成员变量(或是带有方法实体的方法),再选择抽象类。
zeq258
2006-03-20
打赏
举报
回复
f_acme(沧海一声笑)
很清晰,学习下!
谢谢!
crazycy
2006-03-20
打赏
举报
回复
学习,占个位置,兔,然后友情UP,攒rp
gggggame
2006-03-19
打赏
举报
回复
比较同意楼上的
zousoft
2006-03-19
打赏
举报
回复
我是这样理解的,如果要做一个纯抽象类,也就是不包括任何非抽象方法,那么就用接口而不用抽象类。接口好处多多,是抽象类的进化产物。
如果还是要使用一些接口没有的东西,比如还是要用一些非抽象方法,没有办法,只能继续使用传统的抽象类了。
zengxftm
2006-03-19
打赏
举报
回复
抽象类可以有某个方法的具体实现,它的子类可以继承它的方法完成同样的功能,减少了不必要的重复劳动;
而接口只是给出了某些方法的模版,而没有具体的实现,实现它的类还得重新写它的具体操作。
UglyTroLL
2006-03-19
打赏
举报
回复
精华区有,或者我的blog:uglytroll.yculblog.com
上面有对这个问题的讨论
francis_zj
2006-03-19
打赏
举报
回复
抽象类可以有具体的实现,但接口却不可以,一个类只有1个抽象类,但可以有多个接口
suncheng_hong
2006-03-18
打赏
举报
回复
接口的成员属性为final 型的
glorywine
2006-03-18
打赏
举报
回复
继承是单一的
而接口可以有多个
f_acme
2006-03-18
打赏
举报
回复
interface里面没有提供任何具体实现,可以说是一个极度抽象的类,他允许你创建一个能够被向上转型为不止一种基类型的类,以此来实现多重继承。
而抽象类则包含一种或多种抽象方法的类,且可以提供具体的实现。定义抽象类后,其它类可以对它进行扩充并且通过实现其中的抽象方法,使抽象类具体化。
Java中的接口和抽象类的区别,在于接口中没有属性,而且所有的方法都是抽象的,而抽象类可以有属性,而且可以有抽象方法,也可以有实现的方法。但两者都不能被实例化。
使用的时候,一个类可以继承多个接口,但只能继承一个抽象类。
qIwEiXuE
2006-03-17
打赏
举报
回复
如果是抽象类,大概与特定类的继承框架耦合的紧点...
如果是接口,那很智能拉,不关联特定的类继承...
==
偶是这么理解的!
Java
抽象类
与
接口
区别
详解
Java
抽象类
与
接口
区别
详解 Java
抽象类
和
接口
是Java编程语言中两个非常重要的概念,它们都是Java编程中面向对象编程的基础,但它们之间也存在着很大的
区别
。在本文中,我们将详细讨论Java
抽象类
和
接口
的
区别
,包括...
java 小笔记--对于J2SE的重点一个具体总结
4.
抽象类
与
接口
的
区别
抽象类
可以包含方法实现,而
接口
则不能。一个类可以继承一个
抽象类
并实现多个
接口
。如果一个类不能实例化,通常会将其声明为
抽象类
,以表明它是其他类的基类。
接口
更多地是用于定义行为规范...
面向对象编程的小项目,希望读者少走弯路
Java通过
接口
和
抽象类
支持多态,重写方法是实现多态的关键。 4. 构造器:构造器用于初始化新创建的对象,Java中的构造器与类名相同,没有返回值。我们可以通过构造器为对象设置初始状态。 5.
接口
:
接口
在Java中是...
C#设计模式大全
- **结构**:包含
抽象类
、细化
抽象类
、实现者
接口
以及具体实现者类。 - **示意性源代码**:例如,创建不同品牌的电视。 - **实际应用**:例如,在图形用户界面中使用不同的外观。 - **使用条件**:当需要将抽象与...
Thinking_in_java中文第4版(Word完全版)
面向对象的特性如封装、继承和多态性在Java中的应用被详细阐述,特别是动态绑定和
抽象类
与
接口
的使用。 2. **异常处理**:Java中的异常控制机制是编程中重要的错误处理方式,通过try-catch-finally语句块来捕获和...
Java SE
62,626
社区成员
307,258
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章