码迷,mamicode.com
首页 > 编程语言 > 详细

关于Java中继承和接口的理解

时间:2015-07-25 00:21:36      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

关于Java中继承和接口的理解

Java语言中,为了实现代码重用,设计了继承这一机制,但是,其设计成单继承,这样设计是有原因的,如下图:

技术分享

Figure1:deadly diamond of death

此图问题称为菱形问题(diamond problem),就是说,当A的子类B和C同时实现了A中的方法,则同时继承了B和C的子类D在调用该方法时会出现混乱,无法得知该调用哪一个方法。

既然不能实现多继承,我们就会考虑把很多方法就写在父类里,或者继承抽象类,实现其方法,但是,这样会导致一个问题,比如说,子类不应该具有父类的某些方法,那么,我么为了解决这个问题,还必须在子类中重写该方法(但是只能在该方法中什么也不干),这样的设计是很不好的。

那么接口就来了,它解决了Java的多继承问题,可以这样理解,接口就是纯粹的抽象类(其中的方法都是public且是抽象的),我们也可以认为接口是“另一种形式的继承(接口继承)”,我们可以这样思考面向对象编程,其本质就是面向契约(contract)编程或者说是面向协议(protocol)编程,就像继承,子类和父类约定好规则,子类然后去实现或者继承,接口刚好满足了这一点,同时它保证了只要实现了该接口的类,其返回的属性都是一致的,这样就保证了其一致性。同时,它避免了单继承的不足,父类中没有提供子类需要的方法(一般来说,父类提供公共的一些方法),不同的子类可以通过实现不同的接口来实现自己独特的方法,这样也保证了子类的差异性。

版权声明:本文为博主原创文章,未经博主允许不得转载。

关于Java中继承和接口的理解

标签:

原文地址:http://blog.csdn.net/u010999240/article/details/47048125

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!