C 中過載和重寫的方法區別 面試題

2021-07-29 16:01:46 字數 534 閱讀 6911

過載,簡單的說,就是函式或者方法又相同的名稱,但是引數列表不相同的情形,這樣的同名不同引數的函式或者方法之間相互稱之為過載函式或者方法。

重寫,又稱為方法覆蓋,子類可以繼承父類的方法,而不需要重新編寫相同的方法。但是有時候子類並不想原封不動的繼承父類的方法而是做了乙個修改,需要重寫。

區別

方法的重寫和過載是c++多型性的不同表現。重寫是父類與子類之間多型性的一種表現,過載是乙個類中多型性 的一種表現。如果在子類中定義某方法與其父類有相同的名稱和引數,我們說該方法 被重寫 (方法覆蓋)。子類的物件使用這個方法時,將呼叫子類中的定義,對它而 言,父類中的定義如同被「遮蔽」了,而且如果子類的方法名和引數型別和個數都和 父類相同,那麼子類的返回值型別必須和父類的相同;如果在乙個類中定義了多個同 名的方法,它們或有不同的引數個數或有不同的引數型別,則稱為方法的過載 。

重寫必須繼承,過載不用。

重寫的方法名,引數數目相同,引數型別相容,過載的方法名相同,引數列表不同。

面試題總結 過載和重寫的區別

重寫 override 過載規則 必須具有不同的引數列表 可以有不同的返回型別 可以有不同的訪問修飾符 可以丟擲不同的異常。重寫規則 引數列表必須完全與被重寫的方法相同,否則不能稱其為重寫 返回型別必須一直與被重寫的方法相同,否則不能稱其為重寫 訪問修飾符的限制一定要大於等於被重寫方法的訪問修飾符 ...

面試題 方法的過載與重寫的區別?

方法的重寫 override orverwrite vs 過載 overload 面試題 方法的過載與重寫的區別?過載 兩同一不同 同乙個類,同乙個方法名,不同的引數列表。注 方法的過載與方法的返回值無關!構造器是可以過載的 重寫 前提 在繼承的基礎之上,子類在獲取了父類的結構以後,可以對父類中同名...

方法過載和重寫的區別,方法過載重寫區別

答一 根本區別 重寫 重構 很直觀啊,子類覆蓋了父類的同名同參同返回值的方法,用子類呼叫的只會是重寫的方法 過載,同名而已。答二 1 過載 方法名相同,引數列表不同 2 重寫 也叫覆蓋,指在子類中定義乙個與父類中方法同名同引數列表的方法。因為子類會繼承父類的方法,而重寫就是將從父類繼承過來的方法重新...