Java的多型特性

2021-08-28 06:04:29 字數 1592 閱讀 3607

//學習筆記

簡單說:就是乙個物件對應著不同型別。

多型在**中的體現:父類或者介面的引用指向其子類的物件

多型的好處:

提高可維護性(由多型前提所保證),提高了**的擴充套件性

多型的弊端:

無法直接訪問子類特有的成員。也就是說前期定義的內容不能使用(呼叫)後期子類的特有內容。

多型的前提:

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...