如何在groovy中重写字段

如何在groovy中重写字段,groovy,Groovy,我有上面的片段。输出为***。。你猜怎么着 我的问题是-我如何实现java中的结果 ps:groovy控制台适用于那些想要执行上面示例的人:groovyconsole.appspot.com UPD: 将属性转换为方法解决了这个问题。还有其他选项吗?在初始化程序块中重写p的值怎么样 class A { def p = 18 def out() { println(p) } } class B extends A { def p = 21 } ne

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

我的问题是-我如何实现java中的结果

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

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

在初始化程序块中重写
p
的值怎么样

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

new B().out()

当我在Java中尝试这一点时,输出是18,而不是21。所以Groovy在这方面的行为就像Java一样regard@blackdrag你说得对。我真丢脸。我忘记了java:(别担心,当我为Groovy实现它时,我真的想知道java中是否应该允许这样的东西。我可以理解私有字段,但也有其他可访问性?嗯……我现在也在Groovy中保留了它;)
class B extends A {
    { p = 21 }
}