多型發生在繼承關系中
你可以把多型中的父類稱為物件的屬性設計圖
以下所有列子
Cat extends Animal
Dog extends Animal
向上轉型
Animal animal=new Cat(); //把子類的物件賦給父類的參考(式子從后往前理解)
向下轉型(就是向上轉型的翻過來)
animal //這是上面的那個子類物件的父類參考
Cat cat=(Cat)Animal(); //把子類物件的父類參考賦給子類(還需要把子類物件的父類參考強轉為要賦值的那個子類的類,不然報錯)稱之為向下轉型
看到這里有人就會問,
轉來轉去有什么用
還不如一個類一個物件的Cat cat=new Cat();好
下面我給你講這種多型的做法有什么用
其作用主要為:
實作物件批量創建時,物件們對父類屬性的公用化和對子類方法使用的獨特化
實作物件批量創建時,物件們(利用多型創建出來的多個物件)對父類屬性(一般情況下我們共用的這個父類屬性沒有賦值的)的公用化和對子類方法使用的獨特化
看不懂語言解釋就看例子
例子:
設定:下面的Cat Dog都是繼承于Animal的
class Animal{
String name;
}
class Cat{
public void eat(){
Syso…("我吃魚");
}
}
class Dog{
public void eat(){
Syso…("我吃s");
}
}
main主方法中:
Animal animal1=new Dog();
Syso…(animal1.name="我是狗");
animal1.eat();
animal animal2=new Cat();
Syso…(animal2.name="我是貓");
animal2.eat();
輸出:
我是狗
我吃s
我是貓
我吃魚
這就是多型
狗和貓公用了父類animal中的String name這個name屬性;
還都使用了自己獨特的方法eat
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/154715.html
標籤:Java SE
上一篇:FastDfs報the value of item "tracker_server" is invalidthecorrect format這個錯誤是什么原因
