//學習筆記
簡單說:就是乙個物件對應著不同型別。
多型在**中的體現:父類或者介面的引用指向其子類的物件。
多型的好處:
提高可維護性(由多型前提所保證),提高了**的擴充套件性
多型的弊端:
無法直接訪問子類特有的成員。也就是說前期定義的內容不能使用(呼叫)後期子類的特有內容。
多型的前提:
1,子父類的繼承關係
2,方法的重寫
3,父類引用指向子類物件
另乙個概念:動態繫結,指的是執行期間呼叫給的方法,是根據其具體的型別(只針對方法而言)
abstract
class
animal
class
dogextends
animal
void
lookhome()
}class
catextends
animal
void
catchmouse()
}class
pigextends
animal
void
gongdi()
}class
duotaidemo
else
if(a instanceof
dog)
else
}public
static
void
main
(string[
] args)
向上轉型:將子型別隱藏,就不能使用子類的特有方法(方法的隱藏)。
向下轉型:目的是為了使用子類中的特有方法。
編譯時:參考引用型變數所屬的類中的是否有呼叫的成員變數,有,編譯通過,沒有,編譯失敗。
執行時:參考引用型變數所屬的類中的是否有呼叫的成員變數,並執行該所屬類中的成員變數。
簡單說:編譯和執行都參考等號的左邊。
//舉例
class
fuclass
ziextends
fuclass
duotaidemo3
}//輸出的是3.
因為成員函式存在覆蓋特性。
//舉例
classfu}
class
ziextendsfu}
class
duotaidemo3
}//此時輸出的是zi show
編譯時:參考引用型變數所屬的類中的是否有呼叫的靜態方法。
執行時:參考引用型變數所屬的類中的是否有呼叫的靜態方法。
簡單說,編譯和執行都看左邊。
其實對於靜態方法,是不需要物件的。直接用類名呼叫即可。這也能解釋為什麼看的是左邊了,因為左邊才決定了該變數的型別。
//舉例
classfu}
class
ziextendsfu}
class
duotaidemo3
}//此時輸出的是fu static method
Java特性多型
簡單說 就是乙個物件對應著不同型別.多型在 中的體現 父類或者介面的引用指向其子類的物件。1 2 3物件的多型性。45 class 動物6 78class 貓 extends 動物9 1011 class 狗 extends 動物 12 1314 1516 貓 x new 貓 1718 動物 x n...
java特性 多型
1 多型的定義 乙個物件變數 例如 變數e 可以引用多種實際型別的現象被稱為多型 polymorphism 在執行時能夠自動的選擇呼叫哪個方法的現象被稱為動態繫結 dynamic binding 2 多型只適用於方法,不適用於域。父類 class father 子類 class son extend...
java特性之多型
在這裡寫下自己對多型的一點理解 多型的意思就是子類存在和父類方法相同的方法,但是方法實現不一樣,舉個例子 你和你爸都有理髮這個行為,但是你們的理完發髮型就可能不一樣。總的來說就是相同方法不同實現。多型需要滿足哪些條件呢?第乙個,子類必須重寫父類的方法 第二個,要有向上轉型的過程 先把 貼上來 父類p...