Java中是不支持多继承的,但是提供了一些可以实现同样效果的机制——接口的多实现和接口的多继承。
1.什么是接口的多实现?
就是一个类(包括抽象类和普通类)可以同时实现多个接口。
class Test implements Shape,Tool{}//Tool后边可以通过‘,’的间隔继续实现其他接
2.什么是接口的多继承?
即接口之间可以实现多继承。
interface Test extends Shape,Tool{}//Tool后边可以通过‘,’的间隔继续继承其他类
3.继承+接口多实现
class Test extends FutherTest implements Tool,Shape{}
4.为什么接口可以实现多继承而类不可以呢?
由于接口是一种抽象形式,其中的所有方法只有声明而没有方法体,所以当一个类实现多个接口或者一个接口继承多个接口时即使不同接口都含有同样的方法(即方法完全相同)也不会因为这个而不知该实现哪个接口中的方法,因为所有的方法都是一样的。
而类就不同了,因为每个类中的方法必须有自己的实现,当A类和B类中同时出现方法show(),如果此时C类同时继承了A类和B类,那么到底该选择哪个show()方法就是一种歧义,因为俩个方法的方法体也许是完全不同的逻辑。