java - Java中使用匿名类的多重继承

标签 java anonymous-class

<分区>

我知道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

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

最佳答案

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

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

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

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

关于java - Java中使用匿名类的多重继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51766340/

相关文章:

java - 变量应该在哪里声明?

java - Lambda 是否完全废除了 java 8 中匿名内部类的用法?

java - java中匿名内部类成员不可访问

java - Spring-Batch:如何从StepListener返回自定义Job退出代码

java - 如何在循环中进行一些异步调用

java - 将整数转换为二进制并打印数字之和

java - JPA 2.1/hibernate 5 : Search on inner type of Composite User Type with criteria API

java - 为什么匿名类可以访问封闭类的非最终类成员

java - 为什么在匿名类中只能访问最终变量?

java - Optional.orElse 不使用匿名类型进行编译