Java多態

java多態

多態是繼封裝、繼承之後,面向對象的第三大特性。
什麼是多態呢?

  • 多態: 是指同一行爲,具有多個不同表現形式
    在生活中我們每個個體吃東西,象 松鼠、兔紙…我們吃的樣子是不同的。可見,同一行爲,通過不同的事物,可以體現出來的不同的形態。多態,描述的就是這樣的狀態。

實現多態的必要條件:

  1. 繼承或者實現(接口)【二選一】
  2. 方法的重寫【意義體現:不重寫,無意義】
  3. 父類引用指向子類對象【格式體現】

實現:
多態的格式:

父類類型 變量名 = new 子類對象;//父類類型:指子類對象繼承的父類類型,或者實現的父接口類型
變量名.方法名()

注意:
當使用多態方式調用方法時,首先檢查父類中是否有該方法,如果沒有,則編譯錯誤;如果有,執行的是子類重寫 後方法。

e:


public  abstract class Fu {
    public abstract void fly();
}
public class Zi extends Fu{


    @Override
    public void fly() {
        System.out.println("飛向天空");
    }
}

class Zi1 extends Fu{


    @Override
    public void fly() {
        System.out.println("飛向地面");
    }
}
public class Test {
    public static void main(String[] args) {
        Fu f1 = new Zi();
        f1.fly();
        Fu f2 = new Zi1();
        f2.fly();
    }
}

多態的優點:
實際開發的過程中,父類類型作爲方法形式參數,傳遞子類對象給方法,進行方法的調用,更能體現出多態的擴展 性與便利。

引用類型轉換

多態的轉型分爲向上轉型和向下轉型

  1. 向上轉型:多態本身是子類類型向父類類型向上轉換的過程,這個過程是默認的
    當父類引用指向一個子類對象時,便是向上轉型。
    使用格式:父類類型 變量名 = new 子類類型(); 如:Animal a = new Cat();
  2. 向下轉型:父類類型向子類類型向下轉換的過程,這個過程是強制的。
    一個已經向上轉型的子類對象,將父類引用轉爲子類引用,可以使用強制類型轉換的格式,便是向下轉型。
    使用格式:子類類型 變量名 = (子類類型) 父類變量名; 如:Cat c =(Cat) a;

爲什麼要轉型
當使用多態方式調用方法時,首先檢查父類中是否有該方法,如果沒有,則編譯錯誤。也就是說,不能調用子類擁 有,而父類沒有的方法。編譯都錯誤,更別說運行了。這也是多態給我們帶來的一點"小麻煩"。所以,想要調用子 類特有的方法,必須做向下轉型。

發佈了68 篇原創文章 · 獲贊 6 · 訪問量 3441
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章