PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
java
[問題] 請問多型要如何執行父親的method?
作者:
benson101
(benson)
2016-05-12 12:10:10
假如 B Extends A (A,B 都有定義method F)
今宣告:
A a = new B();
請問要如何讓 a.F()執行的是A的F() 而不是B的F()??
感恩~~
作者:
icydream
(巧虎)
2016-05-12 12:24:00
A a = new A();
作者:
bachelorwhc
(單身老王)
2016-05-12 12:43:00
1. 這不是多型2. A.F()
作者:
ssccg
(23)
2016-05-12 13:10:00
不行,B把A的method override掉之後,你就不可能在B的instance上呼叫A的實作,除了在B裡面用super以外有些語言(C++,C#)會分要virtual method才會被overrideJava沒有分,叫到哪個只看instance不看reference
作者:
gpctv
(gpctv)
2016-05-12 14:36:00
改method的名字就好啦!!!不然就像一樓那樣新增一個Class !!!不曉得原po是想問觀念還是寫程式遇到的問題
作者:
benson101
(benson)
2016-05-12 17:00:00
是想釐清觀念 再請教一下 如果A,B都有宣告成員變數X那a.X是access到A的X還是B的X?謝謝!
作者:
NobleDino
(高貴恐龍)
2016-05-12 21:06:00
任何重複執行子類別多型的意義是,同樣的方法,子類別會自動做對的事
作者:
icydream
(巧虎)
2016-05-12 21:53:00
是A的X,field member沒有多型
作者: eric781101
2016-05-13 05:34:00
(A) a.F() 記得可以cast成A
作者:
csieflyman
(風之驕子)
2016-05-13 14:17:00
最近看書學到 java的方法呼叫: non-virtual方法 例如static方法 private方法 new物件的constructor方法 final 方法及容易搞混的方法overloading 都是在編譯期就能知道要且決定要呼叫那一個方法 儲存在bytecode裡然後JVM照著執行 然而多型的 overriding 是執行期才能知道物件的具體型別 查詢 virtual method table 決定要呼叫那個方法 至於直接存取類別欄位根本不是方法呼叫 所以與多型無關
繼續閱讀
[問題] 變數宣告需要提到迴圈外嗎?
genomini
Re: [問題] 檢查ArrayList是否重複
adrianshum
[問題] 檢查ArrayList是否重複
dwadefans
[問題] Facebook遊戲外掛
illegalplan
[問題] BufferedImage 旋轉任意角度
dwadefans
[問題] 問公司 想請問九玖雲端
lytnokia
[問題] Socket連線小問題
f88887878
[書籍] 徵求 Java 考試券
matt4424
[問題] actionListener 在不同 class
eton821002
[問題] 請問Eclipse提示欄圈選的顏色怎麼改
ak77now
Links
booklink
Contact Us: admin [ a t ] ucptt.com