一、多型:
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 弊端 只能訪問父類的成員 轉型 父類引用指向子類物件時,又想要使用子類中的方法,那 麼就需要將該父類引用強轉成指...