2016-02-11 80 views
0
class A { 
    def p = 18 
    def out() { 
     println(p) 
    } 
} 
class B extends A { 
    def p = 21 
} 

new B().out() 

我有上面的代碼片段。輸出是**** ..猜猜看是什麼?如何覆蓋groovy中的字段

我的問題是 - 我該如何取得結果,因爲它會在Java?

PS:groovyconsole.appspot.com

UPD 變換屬性方法解決問題的Groovy控制檯對於那些誰願意執行上面的示例工作正常。任何其他選項?

+0

當我嘗試這在Java中,那麼輸出是18,不是21,所以Groovy的行爲和Java一樣在這方面 – blackdrag

+0

@blackdrag你說得對。對我感到羞恥。我忘了java :( – Rumoku

+0

不要擔心,當我爲Groovy實現這個功能時,我真的很想知道是否應該在Java中允許這樣的事情,我可以理解它的私有領域,但也有其他可訪問性?我現在也在Groovy中保存它;) – blackdrag

回答

2

如何在初始化塊中覆蓋p的值?

class B extends A { 
    { p = 21 } 
}