多继承指一个子类能同时继承于多个父类,从而同时拥有多个父类的特征,但缺点是显著的。
1.若子类继承的父类中拥有相同的成员变量,子类在引用该变量时将无法判别使用哪个父类的成员变量。
2.若一个子类继承的多个父类拥有相同方法,同时子类并未重写该方法(若重写,则直接使用子类中重写的方法),那么调用该方法时,将无法确定调用哪个父类的方法。
假设A类和B类都有 t 方法,但具体实现细节不一样。
C类则继承A类和B类,当C类调用 t 方法时,会出现歧义。
因为,A类和B类都有 t 方法,但具体的实现缺不一样,那么该调用哪个方法呢?
可以多实现是因为,接口中的方法没有具体实现。
实现多个接口时,就算两个接口中有相同的方法,但也不会出现矛盾。
因此,Java仅允许单继承,即一个子类只能继承于一个父类。但为了拓展子类的功能,Java使用接口以克服不使用多继承带来的不足。