Java的多態(tài)

  1. 哪些函數(shù)能夠調(diào)用宰睡,取決于reference的類型
  2. 對于被override 的函數(shù),調(diào)用哪個版本觅闽,取決于object的類型
  3. 如果非要調(diào)用reference 沒有的類型袜漩,可以強制類型轉(zhuǎn)換成object的類型
class A{
    public String show(D obj){
        return "A and D";
    }
    public String show(A obj){
        return "A and A";
    }
}

class B extends A{
    public String show(B obj){
        return "B and B";
    }
    public String show(A obj){
        return "B and A";
    }
    // 繼承的一個隱形的函數(shù)
    //public String show(D obj){
    //    return "A and D";
    //}
}

class C extends B{}
class D extends B{}

public class Test{
    public static void main(String[] args){
        A a1 = new A();
        A a2 = new B();
        B b = new B();
        C c = new C();
        D d = new D();
        
        System.out.println("1-"+a1.show(b));
        // "A and A", 因為reference A可以自動匹配b
        
        System.out.println("2-"+a1.show(c));
        // "A and A", 同理
        
        System.out.println("3-"+a1.show(d));
        // "A and D", 就近匹配
        
        System.out.println("4-"+a2.show(b));
        // "B and A", 因為reference是A,匹配的是public String show(A obj)度液, 但是這個在B里被重寫厕宗,所以是"B and A"
        
        System.out.println("5-"+a2.show(c));
        // "B and A", 同理
        
        System.out.println("6-"+a2.show(d));
        // "A and D"
        
        System.out.println("7-"+b.show(b));
        // "B and B"
        
        System.out.println("8-"+b.show(c));
        // "B and B"
        
        System.out.println("9-"+b.show(d));
        // "A and D", B里面有三個函數(shù)的
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末邓了,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子媳瞪,更是在濱河造成了極大的恐慌骗炉,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蛇受,死亡現(xiàn)場離奇詭異句葵,居然都是意外死亡,警方通過查閱死者的電腦和手機兢仰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進(jìn)店門乍丈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人把将,你說我怎么就攤上這事轻专。” “怎么了察蹲?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵请垛,是天一觀的道長。 經(jīng)常有香客問我洽议,道長宗收,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任亚兄,我火速辦了婚禮混稽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘审胚。我一直安慰自己匈勋,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布膳叨。 她就那樣靜靜地躺著洽洁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪懒鉴。 梳的紋絲不亂的頭發(fā)上诡挂,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天,我揣著相機與錄音临谱,去河邊找鬼。 笑死奴璃,一個胖子當(dāng)著我的面吹牛悉默,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播苟穆,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼抄课,長吁一口氣:“原來是場噩夢啊……” “哼唱星!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起跟磨,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤间聊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后抵拘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體哎榴,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年僵蛛,在試婚紗的時候發(fā)現(xiàn)自己被綠了尚蝌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡充尉,死狀恐怖飘言,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情驼侠,我是刑警寧澤姿鸿,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站倒源,受9級特大地震影響般妙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜相速,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一碟渺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧突诬,春花似錦苫拍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蔬捷,卻和暖如春垄提,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背周拐。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工铡俐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人妥粟。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓审丘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親勾给。 傳聞我的和親對象是個殘疾皇子滩报,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 引言 在面向?qū)ο缶幊?(OOP) 領(lǐng)域锅知,有三個很重要的概念:封裝 (encapsulation)、繼承 (inhe...
    eric_lai閱讀 1,836評論 0 0
  • 多態(tài):對象的多種形態(tài) 1脓钾、引用多態(tài) 父類的引用可以指向本類的對象父類的引用可以指向子類的對象 2售睹、方法多態(tài) 創(chuàng)建本...
    少冰三hun甜閱讀 709評論 0 0
  • 用一句話概括就是:事物在運行過程中存在不同的狀態(tài)。多態(tài)的存在有三個前提: 1.要有繼承關(guān)系 2.子類要重寫父類的方...
    AGI大模型阿南閱讀 925評論 0 0
  • 面向?qū)ο蟮娜N特性封裝可训,繼承和多態(tài)昌妹。封裝是為了保護(hù)數(shù)據(jù)和代碼重用,繼承在一定程度上也是為了代碼重用沉噩,另外一方面繼承...
    0x70e8閱讀 474評論 1 0
  • 什么是“父類引用指向子類的對象”:父類 Person 子類 StudentPerson ...
    芒鞋勝馬閱讀 377評論 0 0