java多態(tài)的實(shí)現(xiàn)機(jī)制:
Java多態(tài)的實(shí)現(xiàn)機(jī)制是父類或接口定義的引用變量可以指向子類或?qū)崿F(xiàn)類的實(shí)例對(duì)象,而程序調(diào)用的方法在運(yùn)行期才動(dòng)態(tài)綁定,就是引用變量所指向的具體實(shí)現(xiàn)對(duì)象的方法,也就是內(nèi)存里正在運(yùn)行的那個(gè)對(duì)象的方法,而不是引用變量的類型中定義的方法。
(視頻教程推薦:java視頻)
本質(zhì):
1、編譯時(shí)多態(tài)(又稱靜態(tài)多態(tài))
2、運(yùn)行時(shí)多態(tài)(又稱動(dòng)態(tài)多態(tài))
一、編譯時(shí)多態(tài)
重載(overload)就是編譯時(shí)多態(tài)的一個(gè)例子,編譯時(shí)多態(tài)在編譯時(shí)就已經(jīng)確定,運(yùn)行時(shí)運(yùn)行的時(shí)候調(diào)用的是確定的方法。
我們通常所說的多態(tài)指的都是運(yùn)行時(shí)多態(tài),也就是編譯時(shí)不確定究竟調(diào)用哪個(gè)具體方法,一直延遲到運(yùn)行時(shí)才能確定。這也是為什么有時(shí)候多態(tài)方法又被稱為延遲方法的原因。
二、運(yùn)行時(shí)多態(tài)
通常有兩種實(shí)現(xiàn)方法:
1、子類繼承父類(extends)
2、類實(shí)現(xiàn)接口(implements)
無論是哪種方法,其核心之處就在于對(duì)父類方法的改寫或?qū)涌诜椒ǖ膶?shí)現(xiàn),以取得在運(yùn)行時(shí)不同的執(zhí)行效果。
推薦教程:java開發(fā)入門