多型
一種事物的多種狀態
多型的規則(前提):
1.類和類之間必須要有關係(繼承關係)
2.必須要有方法的重寫(多型沒有意義)
3.(核心)父類的引用指向子類的物件(空間)
public class demo01多型
}
多型如何使用成員變數
父類應用只能訪問子類空間中 屬於父類的那塊空間
編譯:編譯時要檢視父類中是否有這個屬性 沒有就編譯錯誤
執行:訪問時父類中這個成員變數
結論:當使用多型形式建立物件的時候
訪問成員變數時 編譯和執行 都是看父類中的屬性
多型呼叫成員方法
編譯:編譯時需要看父類中 是否有該方法 沒有就報錯
有 就編譯通過
執行:執行時呼叫是子類重寫父類的方法
結論:編譯看父類 執行看子類
多型的好處:
1.減少**量 提高工作效率 復用性強
相當於提高了**的可維護性(指的是繼承)
2.(核心)提高方法的擴充套件性
多型的弊端:
當使用多型的方式建立物件時
無法直接呼叫子類中特有的方法
多型呼叫子類的特有方法注意:
必須要先有向上轉型才能進行向下轉型
public class demo03
}class person
}class pianzi extends person
//特有方法
public void hit()
}
多型的核心特點:提公升方法的擴充套件性
public class demo04
//使用多型的方法
public static void fun(wuqi wuqi) else if(wuqi instanceof dao)
}}class wuqi
}class jian extends wuqi
//特有的方法
public void lianjian()
}class dao extends wuqi
public static void liandao()
}
java學習之多型
向上轉型是不需要進行強制型別轉換的,但是向上轉型會丟失精度。與向上轉型對應的乙個概念就是 向下轉型 所謂向下轉型,也就是說父類的物件可以轉換為子類物件,但是需要注意的是,這時則必須要進行強制的型別轉換。類似於人壓彈簧 一 向上轉型可以自動完成 二 向下轉型必須進行強制型別轉換。可以用instance...
Java學習之多型
原帖 多型 晚繫結。不要把函式過載理解為多型。因為多型是一種執行期的行為,不是編譯期的行為。多型 父型別的引用可以指向子型別的物件。比如 parent p new child 當使用多型方式呼叫方法時,首先檢查父類中是否有該方法,如果沒有,則編譯錯誤 如果有,再去呼叫子類的該同名方法。注意此處,靜態...
Java學習之多型
多型 晚繫結。不要把函式過載理解為多型。因為多型是一種執行期的行為,不是編譯期的行為。多型 父型別的引用可以指向子型別的物件。比如 parent p new child 當使用多型方式呼叫方法時,首先檢查父類中是否有該方法,如果沒有,則編譯錯誤 如果有,再去呼叫子類的該同名方法。注意此處,靜態sta...