【问题标题】:Groovy class extends parent implements interface, parent implements method in interface, overide errorGroovy 类扩展父实现接口,父实现接口中的方法,覆盖错误
【发布时间】:2018-03-17 21:43:14
【问题描述】:

用简化的代码更容易解​​释。我有如下界面

interface FooInterface{
public void foo()
}

我有以下来自库的 JAVA 父类(注意 final 关键字):

class Parent {
public final foo()
}

最后是子类:

class Child extends Parent implement FooInterface{
}

这导致编译错误,我无法覆盖子类中的最终父方法,从技术上讲,我不是。我认为这是一种我不熟悉的时髦主义。所以我的问题是:

  1. 为什么编译器认为我在覆盖?
  2. 如何编译?

【问题讨论】:

  • 啊父类是一个java类,所以我假设groovy正在尝试重写它使其变得groovy。
  • 我什至无法封装它来绕过,因为父库同时引用了接口和抽象类。

标签: groovy overriding extends implements


【解决方案1】:

无法复制

最终方法: https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/AtomicBoolean.html#get()

在 groovy 2.4.5 中运行良好

import java.util.concurrent.atomic.AtomicBoolean;

interface I{
    public boolean get();
}

public class B extends AtomicBoolean implements I{
}

def b=new B()

【讨论】:

    猜你喜欢
    • 2017-10-21
    • 2018-05-22
    • 2011-05-28
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-20
    • 2021-02-04
    相关资源
    最近更新 更多