多態指的是同一個方法調用,由於對象不同可能會有不同的行為。
多態的要點:
1. 多態是方法的多態,不是屬性的多態(多態與屬性無關)。
2. 多態的存在要有3個必要條件:繼承,方法重寫,父類引用指向子類對象。
3. 父類引用指向子類對象后,用該父類引用調用子類重寫的方法,此時多態就出現了。
對象類型的轉換:
向上可以自動轉換類型,由子類轉換成父類!
向下(由父類轉換成子類)強制類型轉換!以調用該對象特有的方法!
下面這個例子簡單示例說明了多態的使用和對象類型的轉換。
demo:
/** * 測試多態 * @author 房廷飛 * */
public class TextPolym { public static void main(String[] args) { Animal a=new Animal(); animalCry(a); Dog b=new Dog(); animalCry(b); Animal b1=new Dog(); //向上可以自動轉換類型,由子類轉換成父類!
animalCry(b1); Dog b2=(Dog)b1; //向下(由父類轉換成子類)強制類型轉換!以調用該對象特有的方法!
b2.seeDoor(); //調用該對象特有的方法
Animal c=new Cat(); animalCry(c); } static void animalCry(Animal a1) { a1.shout(); } } class Animal{ public void shout() { System.out.println("叫了一聲!"); } } class Dog extends Animal{ public void shout() { System.out.println("汪汪汪"); } public void seeDoor() { System.out.println("看門中!"); //該對象特有的方法!
} } class Cat extends Animal{ public void shout() { System.out.println("喵喵喵"); } }
2019-03-13 22:52:36 房廷飛 期望明天更好的自己!