java中的抽象类与接口有什么异同?

在java中,在抽象类与接口中定义的抽象方法都是需要由子类来重写,两者有什么区别,各自都有什么好处与短处?请各位大大帮忙说明下。... 在java中,在抽象类与接口中定义的抽象方法都是需要由子类来重写,两者有什么区别,各自都有什么好处与短处?请各位大大帮忙说明下。 展开
 我来答
尚学堂前端学院
2020-11-20 · 百度认证:北京尚学堂科技官方账号
尚学堂前端学院
向TA提问
展开全部
相同点:
(1)都不能被实例化
(2)接口的实现类或抽象类的子类都只有实现了接口或抽象类中的方法后才能实例化。
不同点:
(1)接口只有定义,不能有方法的实现,java 1.8中可以定义default方法体,而抽象类可以有定义与实现,方法可在抽象类中实现。
(2)实现接口的关键字为implements,继承抽象类的关键字为extends。一个类可以实现多个接口,但一个类只能继承一个抽象类。所以,使用接口可以间接地实现多重继承。
(3)接口强调特定功能的实现,而抽象类强调所属关系。
(4)接口成员变量默认为public static final,必须赋初值,不能被修改;其所有的成员方法都是public、abstract的。抽象类中成员变量默认default,可在子类中被重新定义,也可被重新赋值;抽象方法被abstract修饰,不能被private、static、synchronized和native等修饰,必须以分号结尾,不带花括号。
(5)接口被用于常用的功能,便于日后维护和添加删除,而抽象类更倾向于充当公共类的角色,不适用于日后重新对立面的代码修改。功能需要累积时用抽象类,不需要累积时用接口。
百度网友9a1b49a
2008-04-09 · TA获得超过383个赞
知道小有建树答主
回答量:1063
采纳率:0%
帮助的人:722万
展开全部
简单说,就是一个超类有自己的方法,子类继承超类的方法,但是子类不想继承超类的方法, 这时就要抽象类来解决.抽象类的抽象方法没有方法体({}),继承的子类可以写自己方法体,
接口指定的所有方法都是抽象的,接口比抽象类更抽象.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
宓谧gr
2008-04-09 · 超过18用户采纳过TA的回答
知道答主
回答量:141
采纳率:0%
帮助的人:76.8万
展开全部
我主要说说抽象类吧,个人感觉是公共属性的一个集合吧,抽象类可以有非抽象方法,并且可以实现他,就是说公共属性可能为里面的非抽象方法,抽象方法可能是绝大多数本类产品的共有属性,如果有产品有特殊属性可以实现一个特殊接口
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-03-21
展开全部
接口和抽象类都不能进行实例化
接口中的方法都是抽象方法,但是抽象类中的方法可以有实现方法也可以有抽象方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tongqingjun8
2008-04-09 · TA获得超过125个赞
知道答主
回答量:189
采纳率:100%
帮助的人:0
展开全部
哎,深有同感啊,我也在为这个问题一直困惑着我,哥们找到答案了, 告诉我啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式