类和接口的继承与实现

  Java中普通类只支持单继承,不支持多重继承,也就是说在java中一个类只能有一个父类。可是在实际应用中,我们又往往需要使用多重继承来解决问题。那这不是前后矛盾了么?又说不能多重继承,又说要使用多重继承来解决问题。
      其实这是有原因的的,下面我们就来具体说说。
  首先,我们来说说为什么Java不支持多重继承。先假设Java支持多重继承,注意是假设,事实并不支持的。举个例子,类C继承类B和类A,A、B都有一个返回值、方法名、参数都完全相同的而内部实现不同的方法,那么类C就不知道该继承哪个类里的方法,从而出现问题。所以为了避免此类问题Java不支持多重继承。
    既然Java不支持多重继承,那我们遇到需要使用多重继承来解决的问题,我们又该怎么办呢?为此,Java提出了接口的思想,接口本质上也是一个类,只不过它所有的方法都是抽象的,也就是说所有的方法都只是做了声明而没有具体的实现内容。为了与普通的类做出区别, 这种特殊的类我们不称为类,而命名为接口。类可以继承多个接口,因为对于前面举的例子,由于方法都是抽象没有实现的,类继承哪个接口的方法都无所谓了,都 只是个声明而已。不过为了避免与Java不支持多重继承混淆,我们把类继承接口不称作继承而称作实现,也就是说一个类可以实现多个接口。同时当类实现接口 时,是要对接口声明的抽象方法具体实现的,所以类实现接口的称呼也显得更加贴切。
    同理,接口也可以继承接口的,而且一个接口可以继承多个接口,因为方法都是抽象的,所以不会引起‘不知道该继承哪个方法’的问题。
    综述,普通类和接口本质上是一样的,原则是不能出现继承方法混乱。

posted on 2016-03-02 14:59  5.2  阅读(5370)  评论(1编辑  收藏  举报

导航