多態性,是面向對象中最重要的概念,在java中有兩種體現:
1.方法的重載(overload)和重寫(overwrite).
2.對象的多態性------可以直接應用在抽象類和接口上。
java引用變量有兩個類型:編譯時類型和 運行時類型。編譯時類型由聲明該變量時使用的類型決定,運行時類型由實際賦給該變量的對象決定。
若編譯時類型和運行時類型不一致,就會出現多態(polymorphism)
多態性指的是什么?可以理解為一個事物的多種表現形態。
一 ?1)方法的重載與重寫 2)子類對象的多態性
二 子類對象的多態性使用的前提:1)要有類的繼承 2)要有子類對父類方法的重寫。
三 程序運行分為編譯狀態和運行狀態
? ? ? 對于多態性來說,編譯時,“看左邊”,將此引用變量理解為父類的類型。
? ? ?運行時,“看右邊”,關注于真正對象的實體:子類的對象。那么執行的方法就是子類重寫的。
//子類對象的多態性:父類的引用指向子類對象
Person p1 =new Man();//向上轉型
//虛擬方法調用:通過父類的引用指向子類的對象實體,當調用方法時,實際執行的是子類重寫父類的方法。
p1.eat();
p1.walk();
動態類型綁定