猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
java中的抽象类到底什么作用?感觉完全是鸡肋啊
我要规范代码,直接写接口然后用一个类实现这个接口不就好了,抽象类在实际的开发中到底有没有什么独特的作用?
慕尼黑5688855
浏览 2251
回答 2
2回答
紫衣仙女
如果你看JDK的源码,就会发现,大部分情况下,你用到的方法,他的父类都是一个抽象类,而不是一个直接的接口。原因主要有两个,接口确实是用来定义规范的,同一个接口下,可能有大量不同的实现,举个例子,List这个接口booleanadd(Ee);booleanremove(Objecto);booleanaddAll(Collection
2
0
0
墨色风雨
将部分共有代码在抽象类中实现。这里举一个在HEADFIRSTDESIGNPATTERNS中的一个例子。假设现在有各种各样的鸭子,比如橡皮鸭,野鸭。这些鸭子有的能飞有的不能飞,但是它们都有两个翅膀,都能发出声音。根据需求我们会得出以下实现。publicabstractclassDuck{privateWingleftWing;privateWingrightWing;publicvoidquack(){...//quackquack}}publicinterfaceFlyable{voidfly();}publicclassRubberDuckextendsDuckimplementsFlyable{publicvoidfly(){...//cannotfly}}publicclassNormalDuckextendsDuckimplementsFlyable{publicvoidfly(){...//flygracefully}}其实抽象类本质是为了提高代码的复用性。在JAVA中的应用还是很广泛的。比如说Collection接口之下的AbstractCollection抽象类。当你想要对某个接口进行默认实现,并且不希望在该实现上创建实例,那么抽象类是一个很好的选择。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
JavaScript
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续