Re: [問題] 一個 java expression 裡有兩個 this

看板java作者 (星泉幼子)時間16年前 (2009/03/29 11:23), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/4 (看更多)
※ 引述《Fenikso (ばかちーは俺の嫁)》之銘言: : (刪光光) : class A { public static void main(String[] args) { new A().new C(); } A() { System.out.println("A:constructor"); } : A getA() { System.out.println("A:getA()"); return this; } : class B { B() { System.out.println("B:constructor"); } B(int v) { System.out.println("B:constructor (int)"); } } : class C extends B { : C() { : A.this.getA().super(2); getA(); A.this.getA(); : } void getA() { System.out.println("C:getA()"); } : } : } : 兩個this和兩個super的我湊不出來orz 幫你加幾個東西進去, 比較好瞭解 ^^> 這個例子應該可以多加探討 A.this.getA() 與 getA() 有什麼不同可以由此得知 為了在 C 內可以使用 A 的 getA(), 利用 A.this 指定是在 "A的這個" 之下 的 getA() A.this.getA().super() 或 A.this.getA().super(2) 可以得知是去用了 B (也就是 C 的super class) 的建構式 且分別與 A.this.super() 以及 A.this.super(2) 同義 當然更同義於 super() 以及 super(2) 只是我不明白語意 >< A.this.getA() 回傳的是 A 型態, 怎麼使用super()時 意義上卻是 B 型態的建構式? 是否有個例子可以說明, 一定要使用 A.this.super() 的用法? (就像是 A.this.getA()與 getA() 這樣的差異) -- 不過, 以前還真沒想到過要同時使用 this 和 super 的 XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.146.194.91
文章代碼(AID): #19pkd5x4 (java)
討論串 (同標題文章)
文章代碼(AID): #19pkd5x4 (java)