使用抽象 类 在 Java 中实现多重继承的可能性

Possibility of multiple inheritance in Java using abstract classes

如果我们将所有抽象类的所有方法都抽象化,是否可以从Java中的多个抽象类继承?

不,Java不支持多重继承。另见 .

Java不支持多重继承 当超类和子类中都存在具有相同签名的方法时会出现问题。

钻石问题:

    GrandParent
       /     \
      /       \
  Parent1      Parent2
      \       /
       \     /
         Test
// A Grand parent class in diamond
class GrandParent
{
    void fun()
    {
        System.out.println("Grandparent");
    }
}

// First Parent class
class Parent1 extends GrandParent
{
    void fun()
    {
        System.out.println("Parent1");
    }
}

// Second Parent Class
class Parent2 extends GrandParent
{
    void fun()
    {
        System.out.println("Parent2");
    }
}


// Error : Test is inheriting from multiple
// classes
class Test extends Parent1, Parent2
{
   public static void main(String args[])
   {
       Test t = new Test();
       t.fun();
   }
}

否 java 不直接支持多重继承,因为这会导致执行时产生歧义。这个问题可以使用类似于多重继承的接口来解决,但是方法在随后的类中定义,所以它不会产生任何歧义。