方法過載與重寫是啥?兩者有啥區別

2021-10-07 11:18:39 字數 985 閱讀 3124

一、重寫:在子類中保留父類成員方法的名稱,重新編寫成員方法的實現內容,更改方法的許可權,修改返回類的父類返回型別的子類。(注意子類與父類的返回值型別要一致)

重寫的目的

1.父類中的方法無法滿足子類的需求,需要重新編寫實現內容

2.子類具有特有的功能,需要方法重寫

部分規則

重寫可以發生在子類繼承父類或者介面的實現

引數列表必須完全與被重寫方法相同

返回型別與被重寫方法的返回型別可以不同

訪問許可權比父類的許可權要高或相同(父類為protected、子類不能為private)

重寫方法不能丟擲比被重新方法更寬泛的異常(許可權修飾符 : private < 預設(什麼都不寫) < protected < public)

宣告private、static、final不能被重寫

重寫的應用:子類根據需要定義自己的特定行為,既然沿襲了父類的功能名稱,又根據子類的需要重寫實現父類方法,從而實現功能擴充套件。

二、過載:在乙個類中定義多個同名的方法,但要求每個方法具有不同的引數的型別或引數的個數。

部分規則:

被過載方法引數列表不一樣

被過載方法可以修改返回型別,訪問修飾符,異常丟擲等

能夠在同乙個類或子類被過載

重寫與過載的區別:

作用範圍:重寫的作用範圍是父類和子類之間;過載是發生在乙個類裡面

引數列表:過載必須不同;重寫必須相同

返回型別:過載可修改;重寫方法返回相同型別或子類

丟擲異常:過載可修改;重寫可減少或刪除,一定不能拋出新的或者更廣的異常

訪問許可權:過載可修改;重寫一定不能做更嚴格的限制

另外,兩者都是實現多型的方式,區別在於過載實現的是編譯的多型性,而重寫實現的是執行的多型性。

方法重寫和方法過載兩者之間有何關聯和區別

q.為什麼需要學習方法重寫?a 父類的功能實現無法滿足子類的需求,需要重寫 方法重寫概述 如果從父類繼承的方法不能滿足子類的需求,可以對其進行改寫,這個過程叫方法的覆蓋 override 也稱為方法的重寫。子類 現了和父類中一模一樣的方法宣告,也被稱為方法從寫。重寫的特點 1 發生在具有子父類兩個關...

FTP與SFTP兩者有什麼區別

在實際專案開發中最常使用的檔案傳輸的方式有ftp和sftp兩種,但是這兩個傳輸方式各有什麼特點呢?本文接下來將討論sftp ftp的區別。一 ftp協議 ftp是tcp ip協議組中的協議之一,tp協議由兩個部分組成 ftp伺服器 用來儲存檔案 ftp客戶端 使用者可以使用ftp客戶端通過ftp協議...

技術與創業不矛盾 兩者是先後關係

之前本人發過一篇關於程式設計師該如何規劃自己的人生的文章 程式設計師該如何規劃自己的人生 在這文章中我大概說了一下我們程式設計師該如何將自己的人生進行合理的規劃,保證我們以後能順利的轉型到其他的方向上,盡可能的不要讓自己最後一無所獲。很多人都說程式設計師是吃青春飯的,其實這點不假說的有道理,我們想想...