Groovy:继承特征方法

时间:2015-04-20 08:37:55

标签: groovy traits

所以我有以下情况:

trait JsonRepresentable { 
     def foo() { print "json" }
}

class SuperA implements JsonRepresentable { }
class SuperB implements JsonRepresentable { }

class Child1 extends SuperA {}
class Child2 extends SuperB { }

现在,如果我在SuperA或SuperB上调用foo()方法,它可以正常工作。但是,如果我从它们继承,则不会在子类上实现foo()方法。

Groovy:Can't have an abstract method in a non-abstract class. The class 'Child1' must be declared abstract or the method 'foo()' must be implemented.

如果我在子节点上实现了JsonRepresentable特性,它也可以解决,但它已经在超类上定义了,所以我猜有一种方法可以某种方式继承特征的foo方法。你能帮我怎么做吗?

修改: Groovy版本:2.3.10

1 个答案:

答案 0 :(得分:3)

问题不在于常规。正是eclipse groovy插件(或编译器)错误地标记了构建。我无法解决编译问题,但是当我启动应用程序时运行正常,所以对我来说没问题。