【问题标题】:Call default interface method which is overridden in superclass [duplicate]调用在超类中被覆盖的默认接口方法[重复]
【发布时间】:2015-09-11 06:05:20
【问题描述】:

我有一个接口和抽象类。

public class TEST extends Abstract implements Inter2{
    void print() {
        toDO();
    }

    public static void main(String[] args) {
        new TEST().toDO();
    }
}

abstract class Abstract {

    public void toDO() {
        System.out.println("Abstract is called");
    }
}

interface Inter2 {

    default void toDO() {
        System.out.println("Inter2 is called");
    }
}

我想强制类接口默认方法而不是抽象类。

【问题讨论】:

标签: java interface java-8 default-method


【解决方案1】:

您必须在 TEST 类中覆盖 toDO:

@Override
public void toDO() {
    Inter2.super.toDO();
}

【讨论】:

    猜你喜欢
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    • 2015-03-17
    • 2010-10-18
    • 1970-01-01
    • 2018-09-14
    • 2015-08-20
    相关资源
    最近更新 更多