[問題] 使用super呼叫父類別屬性

看板java作者 (重出江湖)時間14年前 (2011/10/02 21:00), 編輯推噓10(1009)
留言19則, 6人參與, 最新討論串1/2 (看更多)
請問各位 一般使用super會呼叫到上層類別的成員 如果現在C繼承B B繼承A 三個類別都有變數x 那如果在C類別物件想操控A類別隱藏的x屬性 請問有什麼方法呢? 我剛試了super好像只能呼叫到上一層的x 目前我只想到應該可以在B類別建立一個方法 再由這個方法使用super再往上一層 不知道還有其他方法嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.8.131.106

10/02 21:20, , 1F
隱藏就是希望不被找到啊 XD
10/02 21:20, 1F

10/02 21:21, , 2F
不是這個意思吧XD
10/02 21:21, 2F

10/02 21:22, , 3F
正常方法好像不行,透過Reflection好像可以(那部分我只喵過
10/02 21:22, 3F

10/02 21:24, , 4F
一眼)
10/02 21:24, 4F

10/02 21:29, , 5F
為何要用那麼扭曲的寫法,跟詭異的繼承結構。
10/02 21:29, 5F

10/02 21:35, , 6F
我只是想討論一下另一種情況 實際上應該是不會有人這樣寫
10/02 21:35, 6F

10/02 21:50, , 7F
use public setXXX() public getXXX()
10/02 21:50, 7F

10/02 21:57, , 8F
不,真的有人這麼寫。還變成了很難搞的bug (維護舊code有感)
10/02 21:57, 8F

10/02 21:59, , 9F
protected 可以限定子類別的物件可讀、寫,前提是你動的A
10/02 21:59, 9F

10/02 22:00, , 10F
前提是你動的了A
10/02 22:00, 10F

10/02 22:00, , 11F
是指哪一樓 ?
10/02 22:00, 11F

10/02 22:12, , 12F
這樣子寫用的人不會錯亂嗎= = 變數都同名耶…
10/02 22:12, 12F

10/02 22:27, , 13F
所以,大家都以為用到了『對的』instance。杯具~~~
10/02 22:27, 13F

10/02 23:19, , 14F
java的繼承真的怪怪的 = ="
10/02 23:19, 14F

10/02 23:21, , 15F
這沒什麼好奇怪的吧 這應該是繼承必然會發生的現象
10/02 23:21, 15F

10/02 23:39, , 16F
語法沒規定不能這麼寫,但並不表示這麼寫合理。
10/02 23:39, 16F

10/02 23:39, , 17F
所以,怪怪的是寫的人,不是 Java
10/02 23:39, 17F

10/03 08:39, , 18F
覺得應該把每個不希望被繼承的東西前面都加final.....
10/03 08:39, 18F

10/03 23:33, , 19F
這個想法有欠考慮...加了 final 有其它的 side-effect
10/03 23:33, 19F
文章代碼(AID): #1EY61qWg (java)
文章代碼(AID): #1EY61qWg (java)