java筆記,多型

2021-09-17 20:11:07 字數 1164 閱讀 2102

多型可以用現象與本質來理解。

栗子(偽**):

class people

void drink()

}class my

void drink()

void special()

}people ykh=new my();

當用這樣的例項化方式時:people ykh=new my();

可以這樣理解:用people這個現象來裝飾my這個本質。從現象來看,我是乙個人,我會eat,drink。但只從現象來看,看不出我的特別之處。所以「ykh」不能呼叫special()。

本質上:我是我自己。就算被people來裝飾,我也有自己的eat,drink的方式。所以「ykh」呼叫eat,drink時是呼叫的class my中的eat,drink。(其實我自己也不知道我在說啥~~)

一句話:引用變數型別決定了能呼叫的方法。被引用物件決定調誰的方法。

多型與轉型

使用多型就存在向上轉型,向上轉型不用說。但是向下轉型是有點小坑的。

class animal

class dog extends animal

class cat extends animal

class test

}

經典例題:

class a 

public string show(a obj)

} class b extends a

public string show(a obj)

} class c extends b

class d extends b

public class test

}

輸出結果:

1--a and a

2--a and a

3--a and d

4--b and a

5--b and a

6--a and d

7--b and b

8--b and b

9--a and d

10--b and a

其實還想找更多的測試案列來查漏補缺的。但是有些想法都像流星一般轉瞬即逝。以後清晰了在補充案列吧。

java筆記 多型

一 多型的概述 多型 物件在不同時刻表現出來的不同狀態 多型是針對引用型別 編譯期間的狀態和執行期間的狀態。前提條件 a 要有繼承關係 b 要有方法重寫 c 要有父類引用指向子類物件 class fu class zi extends fu class duotai 這就是多型編譯期間父型別,執行期...

java學習筆記之 多型

父類引用指向子類物件時,注意以下幾點 1 例項化乙個沒有名字的子類物件,然後向上轉型為父類的父類的引用,先去呼叫子類重寫的方法,子類沒有重寫就再去呼叫父類的方法。2 只能呼叫父類中定義過的方法和變數 父類中沒有定義過呼叫的時候要報錯 3 專屬於子類的成員變數,在子類方法中被訪問時,這時候通過父類引用...

JAVA學習筆記之多型

型別轉換分為自動型別轉換和強制型別轉換 1.自動型別轉換 向上型別轉換 父類 小型別 子類 大型別 不存在風險 animal animal new animal dog dog new dog animal dog 自動型別轉換,不存在風險2.強制型別轉換 向下型別轉換 子類 大型別 父類 小型別 ...