看板 java 關於我們 聯絡資訊
請問各位 一般使用super會呼叫到上層類別的成員 如果現在C繼承B B繼承A 三個類別都有變數x 那如果在C類別物件想操控A類別隱藏的x屬性 請問有什麼方法呢? 我剛試了super好像只能呼叫到上一層的x 目前我只想到應該可以在B類別建立一個方法 再由這個方法使用super再往上一層 不知道還有其他方法嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.8.131.106
PsMonkey:隱藏就是希望不被找到啊 XD 10/02 21:20
aoksc:不是這個意思吧XD 10/02 21:21
LaPass:正常方法好像不行,透過Reflection好像可以(那部分我只喵過 10/02 21:22
LaPass:一眼) 10/02 21:24
qrtt1:為何要用那麼扭曲的寫法,跟詭異的繼承結構。 10/02 21:29
aoksc:我只是想討論一下另一種情況 實際上應該是不會有人這樣寫 10/02 21:35
lachtchlee:use public setXXX() public getXXX() 10/02 21:50
qrtt1:不,真的有人這麼寫。還變成了很難搞的bug (維護舊code有感) 10/02 21:57
LaPass:protected 可以限定子類別的物件可讀、寫,前提是你動的A 10/02 21:59
LaPass:前提是你動的了A 10/02 22:00
lachtchlee:是指哪一樓 ? 10/02 22:00
aoksc:這樣子寫用的人不會錯亂嗎= = 變數都同名耶… 10/02 22:12
qrtt1:所以,大家都以為用到了『對的』instance。杯具~~~ 10/02 22:27
LaPass:java的繼承真的怪怪的 = =" 10/02 23:19
aoksc:這沒什麼好奇怪的吧 這應該是繼承必然會發生的現象 10/02 23:21
qrtt1:語法沒規定不能這麼寫,但並不表示這麼寫合理。 10/02 23:39
qrtt1:所以,怪怪的是寫的人,不是 Java 10/02 23:39
LaPass:覺得應該把每個不希望被繼承的東西前面都加final..... 10/03 08:39
sbrhsieh:這個想法有欠考慮...加了 final 有其它的 side-effect 10/03 23:33