为什么在Java中不支持多重继承?
问题:为什么在Java中不支持多重继承?
为了降低复杂性并简化语言,Java中不支持多重继承。想象一个:A,B 和 C 是三个类。 C类继承A和B类。 如果A和B类有相同的方法,并且从子类对象调用它,A或B类的调用方法会有歧义。
因为编译时错误比运行时错误好,如果继承2个类,java会在编译时报告错误。 所以无论子类中是否有相同的方法,都会有报告编译时错误。例如下面的代码是编译出错的。
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? } }
浙公网安备 33010602011771号