java中接口的理解?

最近学到了java的接口,有点懵,向各位请教下,我说说我的理解,请大家评判下,谢谢。1,接口的好处在大型项目中尤为突出,如果你只是一个接口一个实现类是体现不出接口的好处,... 最近学到了java的接口,有点懵,向各位请教下,我说说我的理解,请大家评判下,谢谢。
1,接口的好处在大型项目中尤为突出,如果你只是一个接口一个实现类是体现不出接口的好处,反而会觉得无缘无故要多写些代码
2,
现在比如有三个接口,表示大一学生A、大二学生B、大三学生C的接口,
接口的作用就是给你定义一个规范、职能、属性,让你明白这个接口是怎么怎么的,就好像把一大堆东西分门别类出来。
然后要怎么使用呢?因为接口不能实例化,但是有向上转型对象,前面已经说了,接口是定义属性,那么现在就要开始做事情了。我可以定义一个操作的类,其中有3个方法要求传入的参数是所属A的,所属B的,所属C的,比如A a,B b, C c, 那这样的话我在主函数只需要创建三个向上转型变量,都交给这个操作类来处理,然后它会重载,自动分门别类去做他们各自该做的事,维护起来也方便很多。
ps:因为自己脑子也挺乱的,所以很啰嗦,尽量想表达出来验证下
3, 关于接口和抽象类的区别,我觉的两者很相似,比如2中所举的例子,抽象类也应该是可以实现的,但是问题是抽象类不支持多重继承,就好像上面的例子除了三个接口,还有个抽象类表示人的,使用抽象类不能同时表示你是人且是大几学生,而接口可以。
最后的总结:接口的好处是分门别类,定义一种规范属性(不相对抽象类)
支持多重继承,继承接口数目没有限制 (相对抽象类)
请各位评判,谢谢
展开
 我来答
xin_saxon
推荐于2017-09-07 · TA获得超过157个赞
知道小有建树答主
回答量:103
采纳率:0%
帮助的人:104万
展开全部
  1. 接口的作用也不一定体现在大型项目上,小型项目中适当地使用接口可以显著地提升代码的规范性和可读性。而在大型项目中,良好定义的接口对于层次分明,开发人数多,需求变动大的项目甚至是至关重要的,前两点体现出了你所说的规范,后一点体现的面向对象的多态性。

  2. 说道了多态性,就是你说的大学生的例子,当然,接口的作用还有很多,你可以看看设计模式,面向对象编程学习过程中很重要的一个阶段就是对设计模式的学习,在设计模式中大量使用了接口、抽象类、组合、继承等等。不同的设计模式中,你可以体会接口使用的不同优点。

  3. 相比于抽象类,接口比较突出的优点就是可以多重继承,一个类在继承了一个类后,如果再想为他增加新的规范,接口就是一个很好的选择。而抽象类相对于接口给人的感觉更加的温和,支持常规的属性和部分实现。

个人理解,欢迎指正,共同学习,共同进步!

jamxval
2014-10-16 · TA获得超过6823个赞
知道大有可为答主
回答量:4308
采纳率:82%
帮助的人:1442万
展开全部
接口只描述将来的实现类应该具体的功能。我们也应该把功能分类地放进多个不同的接口中,然后在具体设计实现类的时候把所有功能划分到多个不同的类中,让它们分别实现不同的接口。

总之,就是为了把职责分担给多个类,这与现实生活中职业分工的道理一样。模块化与耦合程度的考虑。接口只描述功能,在设计中可以在更高的层次关注需要做什么,而不提前关注具体做事的细节,就好像老板只说今年需要达成什么愿望(程序),高管们制定了任务清单(接口),但具体怎么把事情做完,还需要等到下面的员工(实现类)来完成。我们设计一个大型的程序,先要像老板一样的思考业务问题,然后像高管一样思考技术问题,最后就是码工上场了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5f6d9b4
2014-10-06 · 超过81用户采纳过TA的回答
知道小有建树答主
回答量:351
采纳率:0%
帮助的人:172万
展开全部
我看到过一个关于接口的描述:
接口实际上是表示一种能力,你可以看看jdk中的一些接口,比如说 cloneable runable 等等,就是告诉你这个对象可以克隆,这个对象能够启动线程。
多重继承嘛,可以理解为这个类有多重能力。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Yf在长春
2014-10-04 · TA获得超过178个赞
知道小有建树答主
回答量:392
采纳率:50%
帮助的人:188万
展开全部
我觉得这地方我也挺糊涂的,我自己觉得接口就是一个类和另一个类的共通的功能,但功能的实现方式是不同的,要重写。。。。。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
话素伊9
2021-11-16 · 超过13用户采纳过TA的回答
知道答主
回答量:209
采纳率:31%
帮助的人:8.7万
展开全部
java是面向对象的,但是为了写起来方便,需要向一个方法传递一个方法,但是实际上并不能传递方法,而是传递了只有一个抽象方法的接口的实现类的对象,这样就做到类似传递方法了,其实lanmada就是一个对象
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式