java面向?qū)ο笕筇匦?102、java中實(shí)現(xiàn)多態(tài)的機(jī)制是什么?
102、java中實(shí)現(xiàn)多態(tài)的機(jī)制是什么?你好,我是堅(jiān)持夢(mèng)想永不放棄的贏家。我很高興為你回答。Java中實(shí)現(xiàn)多態(tài)性的機(jī)制依賴于父類或接口指向子類的引用。因此,實(shí)現(xiàn)了對(duì)象的多種形式的特征。父類的引用在程序
102、java中實(shí)現(xiàn)多態(tài)的機(jī)制是什么?
你好,我是堅(jiān)持夢(mèng)想永不放棄的贏家。我很高興為你回答。Java中實(shí)現(xiàn)多態(tài)性的機(jī)制依賴于父類或接口指向子類的引用。因此,實(shí)現(xiàn)了對(duì)象的多種形式的特征。父類的引用在程序運(yùn)行時(shí)動(dòng)態(tài)引用特定實(shí)例。調(diào)用引用的方法時(shí),它不是根據(jù)引用變量類型中定義的方法運(yùn)行,而是根據(jù)特定實(shí)例的方法運(yùn)行。比較專業(yè)的理科知識(shí),歡迎關(guān)注我。如果你喜歡我的回答,也請(qǐng)給我表揚(yáng)或轉(zhuǎn)發(fā),你的鼓勵(lì)是支持我寫下來的動(dòng)力,謝謝。
什么是多態(tài)?java中如何實(shí)現(xiàn)多態(tài)?
多態(tài)性分為編譯時(shí)多態(tài)性和運(yùn)行時(shí)多態(tài)性。
1. 編譯時(shí)多態(tài)性,其實(shí)是方法重載,函數(shù)名相同,但簽名不一樣。值得注意的是,簽名不包括方法的返回值。換句話說,這兩個(gè)方法的函數(shù)名和輸入?yún)?shù)是相同的,但返回值不同。編譯器返回錯(cuò)誤。
2. 運(yùn)行時(shí)多態(tài)性實(shí)際上與繼承和接口實(shí)現(xiàn)有關(guān)。子類可以重寫父類的非最終、非靜態(tài)、非私有方法或?qū)崿F(xiàn)接口方法。JVM如何知道要調(diào)用哪個(gè)子類實(shí)例的對(duì)應(yīng)方法?這就是你問的問題。在Java中,對(duì)象在JVM中有描述元數(shù)據(jù)。對(duì)象頭存儲(chǔ)當(dāng)前實(shí)例的類型信息。在調(diào)用時(shí),JVM可以根據(jù)這個(gè)類型準(zhǔn)確地找出要使用的子類方法。