java 多態(tài)實(shí)例代碼
多態(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è)必要條件
繼承
重寫(xiě)
父類引用指向子類對(duì)象
Parent p = new Child();
當(dāng)使用多態(tài)方式調(diào)用方法時(shí),首先檢查父類中是否有該方法,如果沒(méi)有,則編譯錯(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(); } }
問(wèn)這個(gè)程序的輸出結(jié)果。(D)
A. Base SonB B. Son SonB C. Base Son SonB D.編譯不通過(guò) 解釋: Base base=new Son(); 是多態(tài)的表示形式。父類對(duì)象調(diào)用了子類創(chuàng)建了Son對(duì)象。 base調(diào)用的method()方法就是調(diào)用了子類重寫(xiě)的method()方法。 而此時(shí)base還是屬于Base對(duì)象,base調(diào)用methodB()時(shí)Base對(duì)象里沒(méi)有這個(gè)方法,所以編譯不通過(guò)。 要想調(diào)用的話需要先通過(guò)SON son=(SON)base;強(qiáng)制轉(zhuǎn)換,然后用son.methodB()調(diào)用。
總結(jié)
以上就是本文關(guān)于java 多態(tài)實(shí)例代碼的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
相關(guān)文章
IDEA實(shí)現(xiàn) springmvc的簡(jiǎn)單注冊(cè)登錄功能的示例代碼
這篇文章主要介紹了IDEA實(shí)現(xiàn) springmvc的簡(jiǎn)單注冊(cè)登錄功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06Java如何在沙箱環(huán)境中測(cè)試支付寶支付接口
這篇文章主要介紹了Java如何在沙箱環(huán)境中測(cè)試支付寶支付接口,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10IDEA連接MySQL后管理數(shù)據(jù)庫(kù)的操作指南
本節(jié)就來(lái)教大家如何在IDEA連接MySQL后管理數(shù)據(jù)庫(kù)(創(chuàng)建/修改/刪除數(shù)據(jù)庫(kù)、創(chuàng)建/修改/刪除表、插入/更新/刪除/查詢表記錄),文中通過(guò)圖文結(jié)合的方式給大家講解的非常詳細(xì),需要的朋友可以參考下2024-05-05java遍歷讀取整個(gè)redis數(shù)據(jù)庫(kù)實(shí)例
這篇文章主要介紹了java遍歷讀取整個(gè)redis數(shù)據(jù)庫(kù)實(shí)例,使用支持正則表達(dá)式的key搜索方法jedis.keys(“*”)實(shí)現(xiàn),需要的朋友可以參考下2014-05-05Servlet連接數(shù)據(jù)庫(kù)實(shí)現(xiàn)用戶登錄的實(shí)現(xiàn)示例
本文主要介紹了Servlet連接數(shù)據(jù)庫(kù)實(shí)現(xiàn)用戶登錄的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06java創(chuàng)建一個(gè)類實(shí)現(xiàn)讀取一個(gè)文件中的每一行顯示出來(lái)
下面小編就為大家?guī)?lái)一篇java創(chuàng)建一個(gè)類實(shí)現(xiàn)讀取一個(gè)文件中的每一行顯示出來(lái)的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01注解@TableName,@TableField,pgsql的模式對(duì)應(yīng)方式
這篇文章主要介紹了注解@TableName,@TableField,pgsql的模式對(duì)應(yīng)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04