行為型-狀態模式(State)
阿新 • • 發佈:2020-11-25
多型
-
概述:
//多型是即封裝性,繼承之後,面向物件的第三大特徵。
-
定義
//多型:同一行為,的不同的表現形式 生活中,比如跑的動作,貓,狗,大象,跑起來的動作是不一樣的。再比如飛的動作:昆蟲,鳥飛起來的動作是不一樣的。可見,同意行為,通過不同的事物,可以表現不同的形態。多型描述的就是這樣的一種狀態。
-
前提條件
1. 繼承或者實現(二選其一) 2. 父類的引用指向子類的物件(格式體現) 3. 方法的重寫(意義:不重寫沒意義)
-
多型的表現
多型的表現得格式
父類型別 變數名 = new 子類物件(); 變數名.方法名(); //備註:父類型別指的是子類物件繼承的父類型別,或者實現的父介面型別
public class Fu{ public void method(){ System.out.println("這是父類的method方法"); } } public void Zi extends Fu{ @Override public void method(){ System.out.println("這是子類的method方法"); } } //polymorphism 多型 public class Text{ public static void main(String[] args){ //父類型別 變數名 = new 子類物件(); Fu f = new Zi(); //子類沒有重寫父類的方法輸出的是繼承的方法 //子類重寫父類的方法本質呼叫的是子類當中重寫後的method方法 } } //如果在使用多型方式呼叫方法時,首先檢查父類當中是否有該方法,如果沒有,則編譯報錯,如果有執行的是子類重寫後的方法。
-
多型的好處
在實際開發中,父類型別作為方法的形式(形參)(不同於實際引數),傳遞子類物件(實參)給方法,進行方法的呼叫,更能體現出多型的擴充套件性和便利性。
//定義抽象父類 public abstract class Animal{ //定義抽象方法 public abstract void eat(); } //定義子類繼承抽象父類 public class Cat extends Animal{ @Override public void eat(){ System.out.println("