有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我的问题是,这里我使用两个抽象类和一个具体类。这不是多重继承的实现吗? 我打算使用类而不是接口来实现代码


共 (2) 个答案

  1. # 1 楼答案

    不,这不是多重继承

    多重继承意味着同一派生类从多个基类继承: enter image description here

    每个类都有自己的基类

    请注意,可以在Java中继承多个接口

  2. # 2 楼答案

    I am using two abstract classes with a concrete class. Isn't that an implementation of multiple inheritance?

    不,您正在main方法中创建两个匿名类的实例。Test类与创建的两个匿名类实例之间没有继承关系

    abc类和扩展它的匿名类之间存在单一继承关系

    xyz类和扩展它的匿名类之间还有另一个单一继承关系