乙個物件有不同的形態。
比如:每個人在不同的場景有著不同的身份
多型在預設情況下只能呼叫子類重寫的方法,不能呼叫子類特有方法。
等號左邊是誰就呼叫誰的成員變數
看new的是誰就呼叫誰的成員方法(一定是子類重寫的!不能是子類特有的方法!!!!!!!)。
那我們為什麼要用多型呢??
多型的好處不是體現在new物件的,而是體現在方法的引數傳遞上(引數為父類型別,接受任何它的子類)。
原始方法:類名 物件名 = new 類名();— 等號兩邊是一樣的。
原始方法的好處:即可以調重寫的,還可以調子類特有的方法!
原始方法的壞處:擴充套件性差–體現在方法引數上!
多型方式:父類引用指向子類物件。
多型方法的壞處:不能直接呼叫子類特有的方法。
多型方法的好處:擴充套件性強!
1.定義格式
父類 物件名 = new 子類()----預設的。
2.向上轉型的壞處:不能呼叫子類特有方法。
1.定義格式
子類 物件名 = (子類)父類。
2.向下轉型的好處:能呼叫子類特有方法。
3.向下轉型的問題:容易出現轉型失敗的問題。classcastexception
4.向下轉型問題解決:物件名 insetanceof 類名 -->判斷前面的物件是不是屬於後面的類
物件導向三大特徵之一多型
在介紹完前面那兩個物件導向的兩個特性之後,接下來就是最後乙個特性 多型 定義 多型表示不同的物件可以執行相同的動作,但要通過它們自己的實現 來執行。例子 在國粹 京劇 中,很多都是師傅帶徒弟,是代代相傳的藝術。假設師傅是乙個非常著名的京劇藝術家,徒弟也很厲害,模仿師傅的戲十分的惟妙惟肖。有一天,師傅...
物件導向三大特徵之一多型
多型 不同物件作用於相同方法,呈現的結果不同 表現形式為a類 物件名 new b類 a類和b類之間存在直接或間接的繼承關係,a類叫做申明類,b類叫做例項類 執行時多型 過載 overload 編譯時多型 重寫 override 過載 方法名相同,形參的型別個數順序不同,只與形參有關,與返回值無關 c...
java中物件導向三大特徵之一多型
不同的物件,接受到相同的訊息,產生的響應不同就是多型。多型的前提 必須是類與類之間有關係。要麼繼承,要麼實現。通常還有乙個前提 存在覆蓋。多型的好處 1.可替換性 substitutability 多型對已存在 具有可替換性。例如,多型對圓circle類工作,對其他任何圓形幾何體,如圓環,也同樣工作...