亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Overload和Override的區別是什么

發布時間:2021-12-22 16:27:35 來源:億速云 閱讀:96 作者:iii 欄目:編程語言

這篇文章主要介紹“Overload和Override的區別是什么”,在日常操作中,相信很多人在Overload和Override的區別是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Overload和Override的區別是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

  重寫 Override 表示子類中的方法可以與父類中的某個方法的名稱和參數完全相同,通過子類創建的實例對象調用這個方法時,將調用子類中的定義方法,這相當于把父類中定義的那個完全相同的方法給覆蓋了,這也是面向對象編程的多態性的一種表現。子類覆蓋父類的方法時,只能比父類拋出更少的異常,或者是拋出父類拋出的異常的子異常,因為子類可以解決父類的一些問題,不能比父類有更多的問題。子類方法的訪問權限只能比父類的更大,不能更小。如果父類的方法是 private 類型,那么,子類則不存在覆蓋的限制,相當于子類中增加了一個全新的方法。


  至于 Overloaded 的方法是否可以改變返回值的類型這個問題,要看你倒底想問什么呢?這個題目很模糊。如果幾個 Overloaded 的方法的參數列表不一樣,它們的返回者類型當然也可以不一樣。但我估計你想問的問題是:如果兩個方法的參數列表完全一樣,是否可以讓它們的返回值不同來實現重載 Overload。這是不行的,我們可以用反證法來說明這個問題,因為我們有時候調用一個方法時也可以不定義返回結果變量,即不要關心其返回結果,例如,我們調用 map.remove(key)方法時,雖然 remove 方法有返回值,但是我們通常都不會定義接收返回結果的變量,這時候假設該類中有兩個名稱和參數列表完全相同的方法,僅僅是返回類型不同,java 就無法確定編程者倒底是想調用哪個方法了,因為它無法通過返回結果類型來判斷。


  override 可以翻譯為覆蓋,從字面就可以知道,它是覆蓋了一個方法并且對其重寫,以求達到不同的作用。對我們來說最熟悉的覆蓋就是對接口方法的實現,在接口中一般只是對方法進行了聲明,而我們在實現時,就需要實現接口聲明的所有方法。除了這個典型的用法以外,我們在繼承中也可能會在子類覆蓋父類中的方法。在覆蓋要注意以下的幾點:


  1、覆蓋的方法的標志必須要和被覆蓋的方法的標志完全匹配,才能達到覆蓋的效果;


  2、覆蓋的方法的返回值必須和被覆蓋的方法的返回一致;


  3、覆蓋的方法所拋出的異常必須和被覆蓋方法的所拋出的異常一致,或者是其子類;


  4、被覆蓋的方法不能為 private,否則在其子類中只是新定義了一個方法,并沒有對其進行覆蓋。


  overload 對我們來說可能比較熟悉,可以翻譯為重載,它是指我們可以定義一些名稱相同的方法,通過定義不同的輸入參數來區分這些方法,然后再調用時,VM 就會根據不同的參數樣式來選擇合適的方法執行。在使用重載要注意以下的幾點:


  1、在使用重載時只能通過不同的參數樣式。例如,不同的參數類型,不同的參數個數,不同的參數順序(當然,同一方法內的幾個參數類型必須不一樣,例如可以是 fun(int,float),但是不能為fun(int,int));


  2、不能通過訪問權限、返回類型、拋出的異常進行重載;


  3、方法的異常類型和數目不會對重載造成影響;


  4、對于繼承來說,如果某一方法在父類中是訪問權限是 priavte,那么就不能在子類對其進行重載,如果定義的話,也只是定義了一個新方法,而不會達到重載的效果。

到此,關于“Overload和Override的區別是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

郧西县| 木里| 桑植县| 高淳县| 建湖县| 察隅县| 收藏| 巴中市| 台湾省| 深水埗区| 龙川县| 建阳市| 兴仁县| 沐川县| 军事| 如东县| 林周县| 灯塔市| 谷城县| 吴旗县| 慈溪市| 资溪县| 泽普县| 敖汉旗| 新河县| 上饶县| 云霄县| 广德县| 济南市| 昔阳县| 平定县| 本溪| 乐至县| 隆安县| 石城县| 利津县| 伊春市| 乌什县| 峨眉山市| 盱眙县| 裕民县|