Why is multiple inheritance not supported in java?

To reduce the complexity and simplify the language, multiple inheritance is not supported in java. Consider a scenario where A, B, and C are three classes. The C class inherits A and B classes. If A and B classes have the same method and you call it from child class object, there will be ambiguity to call the method of A or B class.

Since the compile-time errors are better than runtime errors, Java renders compile-time error if you inherit 2 classes. So whether you have the same method or different, there will be a compile time error.

  1. class A{
  2. void msg(){System.out.println(“Hello”);}
  3. }
  4. class B{
  5. void msg(){System.out.println(“Welcome”);}
  6. }
  7. class C extends A,B{//suppose if it were
  8.  Public Static void main(String args[]){
  9.    C obj=new C();
  10.    obj.msg();//Now which msg() method would be invoked?
  11. }
  12. }
Compile Time Error