如果我们将所有抽象类的所有方法都抽象化,是否可以从Java中的多个抽象类继承?
答案 0 :(得分:0)
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();
}
}
答案 1 :(得分:0)
没有Java不直接支持多重继承,因为这将在执行时导致歧义。可以使用与多重继承类似的接口来解决此问题,但方法是在后续类中定义的,因此不会造成任何歧义。
答案 2 :(得分:-1)
否,Java不支持多重继承。另请参见Abstract classes and Multiple Inheritance。