回覆列表
  • 1 # 使用者3932587838173

    方法的過載和重寫都是實現多型的方式,區別在於前者實現的是編譯時的多型性,而後者實現的是執行時的多型性。過載發生在一個類中,同名的方法如果有不同的引數列表(引數型別不同、引數個數不同或者二者都不同)則視為過載;重寫發生在子類與父類之間,重寫要求子類被重寫方法與父類被重寫方法有相同的返回型別,比父類被重寫方法更好訪問,不能比父類被重寫方法宣告更多的異常(里氏代換原則)。過載對返回型別沒有特殊的要求。

  • 2 # 使用者308699640085

    1.定義區別: ①過載是指不同的函式使用相同的函式名,但是函式的引數個數或型別不同。呼叫的時候根據函式的引數來區別不同的函式。 ②覆蓋(也叫重寫)是指在派生類中重新對基類中的虛擬函式(注意是虛擬函式)重新實現。即函式名和引數都一樣,只是函式的實現體不一樣。 2.類的關係區別 覆蓋是子類和父類之間的關係,是垂直關係;過載是同一個類中方法之間的關係,是水平關係。 3.產生方法區別 覆蓋只能由一個方法或只能由一對方法產生關係;過載是多個方法之間的關係。 4.引數列表要求區別 覆蓋要求引數列表相同;過載要求引數列表不同。 5.呼叫方法區別 覆蓋關係中,呼叫方法體是根據物件的型別來決定;而過載關係是根據呼叫時的實參表與形參表來選擇方法體的。

  • 3 # 使用者6847486145697

    重寫是子類的方法覆蓋父類的方法,要求方法名和引數都相同 。

    過載是在同一個類中的兩個或兩個以上的方法,擁有相同的方法名,但是引數卻不相同,方法體也不相同,最常見的過載的例子就是類的建構函式,可以參考API幫助文件看看類的構造方法。

  • 中秋節和大豐收的關聯?
  • 上班族,工作一年,手裡有4萬怎麼理財?