java中的多型

2021-09-24 23:29:35 字數 1437 閱讀 2313

一、多型:

1.概念:是具有多種形態的能力的特徵,同一實現介面,使用不同的例項而執行不同的操作。

2.多型的好處:減少**量,提高**的可擴充套件性和可維護性。繼承是實現多型的基礎,沒有繼承就沒有多型。

二、使用父類作為方法的形參實現多型:

1.eg:主人喂寵物

(1)pet類,是乙個抽象類,裡面有乙個eat方法是抽象方法。

(2)dog類,繼承pet類,並且重寫父類中的抽象方法。

(3)penguin類,繼承pet類,並且重寫父類中的抽象方法。

(4)maseter類,裡面有乙個類,feed餵食。

public feed(pet pet)

(5)testmain測試類,

dog d = new dog("旺財",100,100,"哈士奇");

penguin p = new penguin("楠楠",10,10,"q妹");

master m = new master("王先生",100);

m.feed(d);

m.feed(p);

三、實現多型的三個條件:

1.繼承的存在。

2.子類重寫父類的方法

3.父類引用變數指向子類物件

四、子類到父類的轉換(向上轉換):

pet pet = new dog(); 	//子類到父類的轉換

dog dog = new dog(); //不涉及轉換

pet.eat(); //呼叫的是子類的eat方法。

pet.play(); //編譯無錯,pet無法呼叫子類特有的方法。

規則: 1.將乙個父類的引用指向乙個子類的物件,稱為向上轉型,或者自動進行型別轉換。

2.此時通過父類的引用變數呼叫的是子類重寫父類的方法,而不是父類的方法。

3.此時通過父類的引用的變數無法呼叫子類特有的方法。

五、父類到子類的轉換,向下轉型。

1.概念:將乙個指向子類物件的父類引用賦值給乙個子類的引用,稱為向下轉型。

2.eg:

pet pet = new dog();

dog dog = (dog)pet; //將pet強制轉換為dog物件

dog.play(); //呼叫dog類特有的方法

penguin pen = (penguin) pet; //轉換異常

pen.play(); //執行不到

六、instanceof運算子:

1.含義:用來進行型別的判斷。

2.結果是true或者false

3.使用instanceof可以避免型別轉換異常。

4.eg:

pet pet = new dog();

if(pet instanceof dog)else if(pet instanceof penguin)

Java中的多型

多型也就是乙個名字多中狀態,這就叫多型。例如,人 老師,學生 老師和學生都是人,也就是人現在有兩種狀態。多型有四種型別 1,基本型別的多型。例如,byte,int,double,float,long。例如2,我們可以把它當作int型別,byte型別,long型別,還可以把其當作double型別。2說...

java中的多型

下面乙個例子,可以很清楚的給大家講解什麼是多型 父類 public class baseclass public void test 子類 public class subclass extends baseclass public void sub 呼叫 public static void ma...

Java中的多型

多型 某一種事物的多種存在形態 1 體現 父類引用指向子類的物件,即父類f 子類z,f fu new z 2 好處 大大提高程式擴充套件性 3 前提 必須是繼承或實現關係 且存在覆蓋 4 弊端 只能訪問父類的成員 轉型 父類引用指向子類物件時,又想要使用子類中的方法,那 麼就需要將該父類引用強轉成指...