1. 程式人生 > >轉載https://blog.csdn.net/HD243608836/article/details/78060704

轉載https://blog.csdn.net/HD243608836/article/details/78060704

分情況的,第一種情況:jdk1.4及之前的版本返回型別必須完全一樣。第二種情況:jdk1.5及之後的版本,返回型別可以是父類返回型別的相容型別。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

關於重寫,遵循以下的規則:

(1)重寫方法必須和被重寫方法具有相同的引數列表,返回型別必須和被重寫方法的返回型別相同或者是返回型別的子型別

(2)重寫方法的訪問控制修飾符不能比被重寫方法更嚴格(比如一個在父類中宣告為public的方法重寫成一個protected的方法)。

(3)只有例項方法才能被重寫,超類中的static和final方法不能被重寫。



(4)重寫方法不能丟擲新的檢查異常,或者是丟擲比被重寫方法宣告的檢查異常更廣泛的檢查異常。

(5)注意一種特殊情況:如果超類的方法版本中聲明瞭檢查異常,但重寫的子類方法中沒有宣告,這時如果使用多型的方式進行呼叫,那麼編譯器認為你呼叫的是聲明瞭異常的方法。

(6)儘管多型是在編譯時確定物件的型別,但在編譯時,還是根據父類的方法宣告進行程式檢查。因此,如果子類中定義的方法,在父類中沒有定義,則會出項編譯錯誤。

Java的過載機制:
過載的實質:在一個類中使用簽名相同的多個方法。

按照範圍,可以將過載分為在一個類中過載,和在子類和父類中過載。現分別解釋如下:

1.在一個類中定義多個具有相同簽名的方法,這些方法必須具有不同的引數列表,比如一個類的建構函式。


2.在父類和子類中,子類由於繼承而擁有了父類的某些方法,此時在子類再定義具有相同簽名的方法(必須具有不同的引數列表),這個地方很容易和重寫相混淆,因此千萬注意。

過載的規則主要記住亮點:
一是方法的引數列表必須改變,包括引數的型別,引數的個數多少,引數順序

二是過載對返回型別,訪問修飾符,異常宣告沒有任何限制,可以作任意的修改。實質上,過載只是建立了一個方法而已,特殊的地方在於方法的名字。

分情況的,第一種情況:jdk1.4及之前的版本返回型別必須完全一樣。第二種情況:jdk1.5及之後的版本,返回型別可以是父類返回型別的相容型別。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

關於重寫,遵循以下的規則:

(1)重寫方法必須和被重寫方法具有相同的引數列表,返回型別必須和被重寫方法的返回型別相同或者是返回型別的子型別

(2)重寫方法的訪問控制修飾符不能比被重寫方法更嚴格(比如一個在父類中宣告為public的方法重寫成一個protected的方法)。

(3)只有例項方法才能被重寫,超類中的static和final方法不能被重寫。

(4)重寫方法不能丟擲新的檢查異常,或者是丟擲比被重寫方法宣告的檢查異常更廣泛的檢查異常。

(5)注意一種特殊情況:如果超類的方法版本中聲明瞭檢查異常,但重寫的子類方法中沒有宣告,這時如果使用多型的方式進行呼叫,那麼編譯器認為你呼叫的是聲明瞭異常的方法。

(6)儘管多型是在編譯時確定物件的型別,但在編譯時,還是根據父類的方法宣告進行程式檢查。因此,如果子類中定義的方法,在父類中沒有定義,則會出項編譯錯誤。

Java的過載機制:
過載的實質:在一個類中使用簽名相同的多個方法。

按照範圍,可以將過載分為在一個類中過載,和在子類和父類中過載。現分別解釋如下:

1.在一個類中定義多個具有相同簽名的方法,這些方法必須具有不同的引數列表,比如一個類的建構函式。

2.在父類和子類中,子類由於繼承而擁有了父類的某些方法,此時在子類再定義具有相同簽名的方法(必須具有不同的引數列表),這個地方很容易和重寫相混淆,因此千萬注意。

過載的規則主要記住亮點:
一是方法的引數列表必須改變,包括引數的型別,引數的個數多少,引數順序

二是過載對返回型別,訪問修飾符,異常宣告沒有任何限制,可以作任意的修改。實質上,過載只是建立了一個方法而已,特殊的地方在於方法的名字。