您好,登錄后才能下訂單哦!
多態(tài)是同一個(gè)行為具有多個(gè)不同表現(xiàn)形式或形態(tài)的能力。多態(tài)就是同一個(gè)接口,使用不同的實(shí)例而執(zhí)行不同操作。
多態(tài)性是對(duì)象多種表現(xiàn)形式的體現(xiàn),比如:
在現(xiàn)實(shí)中,我們按下F1鍵這個(gè)動(dòng)作:
如果當(dāng)前在Flash界面下彈出的就是AS 3的幫助文檔
如果當(dāng)前在Word下彈出的就是Word幫助
在Windows下彈出的就是Windows幫助和支持
多態(tài)存在的三個(gè)必要條件
繼承
重寫
父類引用指向子類對(duì)象
Parent p = new Child();
當(dāng)使用多態(tài)方式調(diào)用方法時(shí),首先檢查父類中是否有該方法,如果沒有,則編譯錯(cuò)誤;如果有,再去調(diào)用子類的同名方法。
例題
package Wangyi; class Base { public void method() { System.out.println("Base"); } } class Son extends Base { public void method() { System.out.println("Son"); } public void methodB() { System.out.println("SonB"); } } public class Test01 { public static void main(String[] args) { Base base = new Son(); base.method(); base.methodB(); } }
問這個(gè)程序的輸出結(jié)果。(D)
A. Base SonB B. Son SonB C. Base Son SonB D.編譯不通過 解釋: Base base=new Son(); 是多態(tài)的表示形式。父類對(duì)象調(diào)用了子類創(chuàng)建了Son對(duì)象。 base調(diào)用的method()方法就是調(diào)用了子類重寫的method()方法。 而此時(shí)base還是屬于Base對(duì)象,base調(diào)用methodB()時(shí)Base對(duì)象里沒有這個(gè)方法,所以編譯不通過。 要想調(diào)用的話需要先通過SON son=(SON)base;強(qiáng)制轉(zhuǎn)換,然后用son.methodB()調(diào)用。
總結(jié)
以上就是本文關(guān)于java 多態(tài)實(shí)例代碼的全部內(nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。