【问题标题】:Groovy trait asks me to implement all of it's super class's methods while it have been implemented on another interfaceGroovy trait 要求我实现它的所有超类方法,而它已在另一个接口上实现
【发布时间】:2020-02-19 05:02:33
【问题描述】:

我有一个接口A(在java中)

public interface A {
    File getFile();
    void delete();
    void delete0();
}

还有一个接口 B 扩展了 A(在 java 中)

public interface B extends A {
    default void delete() {
        this.getFile().delete();
    }
}

还有一个接口C,它也扩展了A(在java中)

public interface C extends A {
    default void delete0() {
        this.getFile().delete();
    }
}

而且我有一个实现A 的特征D(在常规中)

public trait D implements A {
    private File file;
    public File getFile() {
        return this.file;
    }
}

最后,我有一个类 E 实现了 BCD(在 groovy 中)

public class E implements B, C, D {
}

编译时,编译器抱怨类E没有实现方法delete0()

【问题讨论】:

  • 你的最后一个班级名字是D,应该是E
  • 这是什么 groovy 版本?我对trait D 中的default 感到困惑
  • 对不起,我写的是 'D' 而不是 'E',也对不起'default'修饰符我的意思是'public'

标签: java groovy interface traits


【解决方案1】:

您的代码适用于 Groovy 3.0.1,我假设您使用的是有错误的早期版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 2012-04-30
    • 2016-02-07
    • 2015-11-11
    • 2019-09-11
    • 1970-01-01
    相关资源
    最近更新 更多