JAVA多態
多態的好處:
減少代碼的冗餘性
多態中的兩種類型轉換:
向上轉型,也叫做自動類型轉換,構成多態
-
使用:
- 父類型類 引用名稱 = new 子類類名();
-
當是多態時,該引用名稱只能訪問父類中的屬性和方法,但是優先訪問子類重寫以後的方法
向下轉型(強制類型轉換)
-
當是多態時,並且訪問子類獨有的屬性或方法時,則必須進行向下轉型
-
使用:
- (父類)Pet p=new Dog();(子類)
- Dog d=(Dog)p;
-
建議向下類型轉換時,先進行判斷,當合法則在轉爲對應的類型,則使用instanceof關鍵字
- P=new cat();
if(p instanceof Dog){
Dog dog =(Dog)p;
}else if(p instanceof cat) {
Cat cat=(Cat)p
}
- P=new cat();
遞歸:
方法自己調用自己,必須保證有出口
練習遞歸計算n!:
-
public static int mul(int n){
if (n==0||n==1){return 1;} return n*mul(n-1);
}
多態:
語法格式:
- 父類類名 引用名稱 = new 子類類名();
注意:
- 當時多態時,該引用名稱只能訪問父類中的屬性和方法(但是優先訪問子類重寫後的方法)
將多個對象調用同一個方法,得到不同的結果
滿足多態的條件:
- 子類必須繼承父類
- 子類重寫父類的方法