當前位置:才華齋>計算機>java語言>

java知識點講解

java語言 閱讀(2.75W)

本文主題:

java知識點講解

一.什麼是過載

二.什麼是覆蓋

三.兩者之間的區別

過載(overload):

在一個類中,如果出現了兩個或者兩個以上的同名函式,只要它們的引數的個數,或者引數的型別不同,即可稱之為該函式過載了。

即當函式同名時,只看引數列表。和返回值型別沒關係。

過載使用的時候需要注意:

1、在使用過載時只能通過不同的引數樣式。例如,不同的引數型別,不同的引數個數,不同的引數順序。

2、方法的異常型別和數目不會對過載造成影響。

3、對於父類來說,子類可以過載與繼承父類中的.方法同名的方法,如果某一方法在父類中是訪問許可權是priavte,那麼就不能在子類對其進行過載,如果定義的話,也只是定義了一個新方法,而不會達到過載的效果。

覆蓋(override):

當子父類中出現了一模一樣的方法時,建立子類物件會執行子類中的方法。好像父類中的方法被覆蓋掉一樣。所以這種情況,是函式的另一個特性:覆蓋。

什麼時候使用覆蓋呢?

當子類繼承父類時,父類的功能內容需要修改時,可以通過覆蓋來實現

在方法覆蓋時,注意兩點:

1、子類覆蓋父類時,必須要保證,子類方法的許可權必須大於等於父類方法許可權可以實現繼承。否則,編譯失敗。

2、覆蓋時,要麼都靜態,要麼都不靜態。 (靜態只能覆蓋靜態,或者被靜態覆蓋)YES

3、被final修飾的方法是一個最終方法,不可以被覆蓋。

4、子類覆蓋父類的方法時,只能比父類丟擲更少的異常,或者是丟擲父類丟擲的異常的子異常,因為子類可以解決父類的一些問題,不能比父類有更多的問題。

過載和覆蓋的區別:

1、方法的覆蓋是子類和父類之間的關係,是垂直關係;方法的過載是同一個類中方法之間的關係,是水平關係。

2、覆蓋只能由一個方法,或只能由一對方法產生關係;方法的過載是多個方法之間的關係。

3、覆蓋要求引數列表相同;過載要求引數列表不同。

4、覆蓋關係中,呼叫那個方法體,是根據物件的型別來決定;過載關係,是根據呼叫時的實參表與形參表來選擇方法體的。

以上就是小編為大家帶來的深入理解java中的過載和覆蓋全部內容了,希望大家多多支援~