易百教程

61、为什么java不支持多重继承?

为了降低复杂度和简化语言,java 中不支持多重继承。 考虑一个场景,其中 A、B 和 C 是三个类。 C 类继承 A 和 B 类。 如果 A 类和 B 类有相同的方法,并且从子类对象中调用它,那么调用 A 类或 B 类的方法就会有歧义。
由于编译时错误优于运行时错误,如果继承 2 个类,Java 会呈现编译时错误。 所以无论有相同的方法还是不同的方法,都会出现编译时错误。

package com.yiibai.demo;

class A {

    void msg() {
        System.out.println("Hello");
    }
}

class B {

    void msg() {
        System.out.println("Welcome");
    }
}

class C extends A,B{//suppose if it were  
    public Static void main(String args[]) {
        C obj = new C();
        obj.msg();//Now which msg() method would be invoked?  
    }
}

编译错误~!