国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

重載和覆蓋

2019-11-14 15:31:48
字體:
來源:轉載
供稿:網友

說到java中的重載和覆蓋呢,大家都很熟悉了吧,但是呢我今天就要寫這個。

本文主題:

  一.什么是重載

  二.什么是覆蓋

  三.兩者之間的區別

重載(overload):

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

  即當函數同名時,只看參數列表。和返回值類型沒關系。

 

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

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

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

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

覆蓋(override):

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

  什么時候使用覆蓋呢?

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

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

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

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

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

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

重載和覆蓋的區別:

  1、方法的覆蓋是子類和父類之間的關系,是垂直關系;方法的重載是同一個類中方法之間的關系,是水平關系。 
  2、覆蓋只能由一個方法,或只能由一對方法產生關系;方法的重載是多個方法之間的關系。 
  3、覆蓋要求參數列表相同;重載要求參數列表不同。 
  4、覆蓋關系中,調用那個方法體,是根據對象的類型來決定;重載關系,是根據調用時的實參表與形參表來選擇方法體的。

 

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 德安县| 诸城市| 广河县| 宜黄县| 柳河县| 三都| 黄骅市| 瓦房店市| 绵阳市| 灵石县| 太仆寺旗| 吉木乃县| 沈阳市| 五台县| 合阳县| 固原市| 轮台县| 汕头市| 灌南县| 长海县| 义乌市| 桃园市| 昌邑市| 贵定县| 三门峡市| 葫芦岛市| 西畴县| 垣曲县| 开封县| 西充县| 玛曲县| 镇康县| 东阿县| 玉溪市| 永兴县| 满城县| 曲阳县| 德化县| 龙山县| 外汇| 长宁区|