如何覆盖groovy中的字段

vvg*_*vvg 2 groovy

class A {
    def p = 18
    def out() {
        println(p)
    }
}
class B extends A {
    def p = 21
}

new B().out()
Run Code Online (Sandbox Code Playgroud)

我有上面的片段。输出是****..你猜怎么着?

我的问题是 - 我怎样才能像在 Java 中那样获得结果?

ps:groovy 控制台适用于那些想要执行上述示例的人:groovyconsole.appspot.com

UPD 将属性转换为方法解决了问题。还有其他选择吗?

bdk*_*her 5

如何覆盖p初始化块中的值?

class B extends A {
    { p = 21 }
}
Run Code Online (Sandbox Code Playgroud)