基本概念的解釋。
多型性的依賴條件是方法的覆寫!!
觀察如下的乙個程式:
classa
}class
b extends a
}public
class
test
}
輸出結果是 b--print() ;
一》方法的多型性:
(1)方法的過載:同乙個方法名稱會根據傳入引數的型別及個數不同執行不同的方法體
(2)方法的覆寫:同乙個方法會根據子類的不同實現不同的功能。
二》物件的多型性:值得是發生在繼承關係類之中,子類和父類之間的轉換
(1)向上轉型:(自動完成)父類 父類物件 = 子類例項;
(2)向下轉型:(強制完成)子類 子類物件 = (子類) 父類例項;
範例:
class a}class b extends a
}public class test
}//結果都會輸出 b--print();
為什麼需要向下轉型呢??
對於資料的操作分為兩步
1.設定資料 : 最需要的是引數一致的功能
如果有乙個方法:
public static void fun(a a)
}class
b extends a
public
void
fun()
}public
class
test
}結果顯示
classcastexception 類轉換異常,沒有關係的類對線更強制發生向下轉型時候發生 的異常。
java判斷類和例項的關係:
1.instanceof
classaclass
b extends a
public
class
testdemo
如果:a a = new a() ;
system.out.println(a instanceof a) ; //true
system.out.println(a instanceof b) ; //false}}
//如果是向上傳遞,那麼,a是a的例項化也是b的例項化
物件導向的多型 多型性
多型指的是一類事物有多種形態,比如水有多種形態 冰 水 水蒸氣,但都是h2o,下面定義乙個h2o的父類和三種形態的子類 class h2o def init self,name,temperature self.name name self.temperature temperature deftu...
物件導向之多型 多型性
一 多型 多型指的是一類事物有多種形態 動物有多種形態 人,狗,豬 import abcclass animal metaclass abc.abcmeta 同一類事物 動物 abc.abstractmethod deftalk self pass class people animal 動物的形態...
多型的核心體現(方法的多型性,物件的多型性)
多型的概念 同乙個方法,在不同的情境下會有不同的表現 多型的核心體現主要有以下兩點 1 方法的過載 定義 同乙個方法名可以根據引數列表的不同呼叫不同的方法體 2 方法的覆寫 定義 同乙個父類的方法,可以根據例項化子類的不同也有不同的表現 前提 方法覆寫 1 物件的向上轉型 父類 父類物件 new 子...