Java中使用匿名类的多重继承
我知道java不支持多重继承。我编写了如下所示的代码
abstract class abc {
public abstract void print();
}
abstract class xyz {
public abstract void print();
}
public class Test {
public static void main(String[] args) {
abc obj1 = new abc() {
public void print() {
System.out.println("abc");
}
};
xyz obj2 = new xyz() {
public void print() {
System.out.println("xyz");
}
};
obj1.print();
obj2.print();
}
}
产出为:
abc
xyz
我的问题是,这里我使用两个抽象类和一个具体类。这不是多重继承的实现吗? 我打算使用类而不是接口来实现代码
# 1 楼答案
不,这不是多重继承
多重继承意味着同一派生类从多个基类继承:
每个类都有自己的基类
请注意,可以在Java中继承多个接口
# 2 楼答案
不,您正在
main
方法中创建两个匿名类的实例。Test
类与创建的两个匿名类实例之间没有继承关系abc
类和扩展它的匿名类之间存在单一继承关系在
xyz
类和扩展它的匿名类之间还有另一个单一继承关系