一、多型【子類就是父類】
1、 為什麼使用多型
提高程式可擴充套件性,可維護性,提高**可重用性
2、 什麼是多型
具有表現多種形態能力的特徵
同乙個實現介面,使用不同的例項而執行不同的操作
3、 如何使用多型
l 方法的引數型別是父類
訪問修飾符 返回型別 方法名(父類名 物件名){
n 呼叫方法時,可以傳遞子類的物件
l 父(子)類名 物件 = new 子類名();
l 方法名(子類物件);
l 方法的返回型別是父類
訪問修飾符 父類名 方法名([引數列表]){
return 父類物件或子類物件;
4、 多型中子類和父類之間的轉換
a)子類到父類的轉換(向上轉換)
父類 物件名 = new 子類();//自動進行轉換
物件名.方法名([值]);
向上轉換的使用規則:
l 父類引用指向子類物件時稱為向上轉換或轉型(upcasting),自動進行型別轉換
l 通過父類引用變數,呼叫的方法是子類覆蓋(重寫)或繼承父類的方法
l 通過父類引用變數,無法呼叫子類特有的方法
b)父類到子類的轉換(向下轉換)——強制型別轉換,還原物件的真實面目(具體是哪種子類)
父類 物件名 = new 子類();
物件名.子類方法();//編譯有錯誤
應修改為:
父類 物件名 = new 子類();
子類 子類物件 =(子類)物件名;
子類物件.子類方法();
c)、運算子instanceof
l 作用:避免父類向子類進行轉換時出現異常,進行型別的判斷(判斷物件是否屬於乙個類或實現了乙個介面,返回乙個布林型別的值【true或false】)
l 注意:該運算子,通常和強制型別轉換結合使用
if(物件名 instanceof 類名){
類名 物件=(類名)物件名;
物件名和類名必須存在繼承關係,否則is語句編譯錯誤
物件導向 多型
繼承是多型的基礎,是指物件的多種形態 1.引用的多型 1 父類的引用可以指向本類的物件 2 父類的引用可以指向子類的物件 注意 子類的引用不能指向父類的物件 2.方法的多型 1 建立本類物件時,呼叫的方法是本類的方法 2 建立子類物件時,呼叫的方法是子類重寫的方法或是繼承的方法 注意 如果是子類獨有...
物件導向 多型
多型可以簡單的概括為 乙個介面,多種方法 在程式執行過程中才決定呼叫的函式,簡單的說就是,允許將子類型別的指標賦值給父類型別的指標,賦值後,父類物件就可以根據當前賦給它的子類物件的特徵以不同的方式執行。容易混淆的兩個概念 是指允許存在多個同名的函式,而這些函式的參數列不同 或許引數個數不同,或許引數...
物件導向 多型
多型 可以理解為事物存在的多種體現形態。人 男人,女人 動物 貓,狗。貓 x new 貓 動物 x new 貓 1,多型的體現 父類的引用指向了自己的子類物件。父類的引用也可以接收自己的子類物件。2,多型的前提 必須是類與類之間有關係。要麼繼承,要麼實現。通常還有乙個前提 存在覆蓋。3,多型的好處 ...