1,同一種事物,由於條件不同,產生的結果不同
多型:同乙個引用型別,使用(指向)不同的例項而執行不同的操作;
方法重寫是多型的基礎,
2,多型的兩種形態轉換:
a父類型別的引用指向子類型別物件;
子類相父類的轉換稱為向上轉型:將乙個父類的引用指向乙個子類物件,稱為向上轉型,系統會自動進行型別轉換
向上轉型(只能呼叫繼承關係中被重寫的方法)
《父型別》《引用變數名》 = new《子型別》();
hous hous = new dog();//向上轉型
b將乙個指向子類物件的父類的引用賦給乙個子類的引用;
即將父類型別轉換為子型別,稱為
向下轉型
,此時必須進行
強制型別轉換
;只有進行強制型別轉換,將父類型別轉換為子類型別,然後才能呼叫子類特有的方法
;向下轉型(父類引用變數呼叫的方法是子類覆蓋或者繼承了的父類的方法,不是父類的方法);
此時通過父類引用變數,無法呼叫子類特有的方法,因此還需向下在進行一次轉換才能呼叫子類特有方法;
《子型別》《引用變數名》=(《子型別》)《父型別的引用變數》
hous hous1 = new bird();//向上轉型
多型有兩種使用父類的形式:
1使用父類作為方法的引數
2使用父類作為方法的返回值
instanceof:
使用時,物件型別必須和關鍵字後面的引數所指定的類有上下級關係
解釋:特定型別的變數可以引用不同型別的物件,並且能夠自動的呼叫引用物件的方法,也就是根據作用到的不同物件型別,響應不同的操作:
像乙個父類型別的變數可以引用子類的物件,這樣他在記憶體中儲存的資訊是子類的,但是編譯的時候型別是父類的,所以乙個
型別的變數可以指向不同型別的物件,這就是多型。
多型意味著在一次方法呼叫中,根據包含的物件的實際型別(實際的子類物件)來決定應該呼叫哪個方法
多型 final關鍵字 static關鍵字
1.什麼是多型性 同乙個動作與不同的物件產生不同的行為 多型 必須有繼承 不同的子類重寫父類方法後體現出來的形式不一樣 或者介面的實現 乙個物件的多種形態叫做多型 2.形成多型的必要條件 1 繼承 存在子類和父類的關係 2 介面實現 定義乙個類實現對應的介面 3 重寫 子類重寫父類的方法 4 過載 ...
多型 instanceof關鍵字
animal a new dog animal a 所有子類型別 概念 父類引用指向子類物件,從而產生多種形態。使用場景一 使用父類作為方法形參實現多型,使方法引數的型別更為寬泛 原理 如果子類覆蓋了父類的方法,則執行子類中覆蓋後的方法 使用場景二 使用父類作為方法返回值實現多型,使方法可以返回不同...
this關鍵字和super關鍵字
this關鍵字和super關鍵字都必須放在構造方法的第一行,所有兩個關鍵字不能同時存在,任選其一即可,只需保證子類的所有構造方法呼叫父類的構造方法即可 this關鍵字的應用 this關鍵字用於區分區域性變數和成員變數的同名問題 有this關鍵字的是成員變數,或者是誰呼叫我,訪問的就是誰 this關鍵...