物件導向 重寫(override)

2021-07-31 14:31:40 字數 924 閱讀 6207

子父類中成員函式的特點

特殊情況

子父類中定義了一模一樣的函式

執行的結果是:子類的函式在執行。

這種情況在子父類中,是函式的另乙個特性:override(重寫,覆蓋,複寫)

重寫什麼時候用?

舉例:

/描述手機。

class phone }

phone p=new phone();

p.show();

隨著**的公升級,希望顯示姓名,大頭貼。

修改原始碼,雖然費勁但是可以解決問題,不利於後期的維護和擴充套件。

為了擴充套件方便,新功能是不是新的**具備的呢?

單獨描述單獨封裝。新**也是新**中的一種。繼承-直接獲取父類的功能。

但是新**的來顯功能已經變化了,需要重新定義。

那麼定義乙個新功能合適嗎?比如newshow,不合適,因為父類已經將來顯功能定義完了,

子類完全不需要定義新功能,直接用就可以了,如果子類的來顯功能內容不同。

只需要保留來顯功能,定義子類的內容即可,這就是重寫的應用。

class newphone extends phone }

重寫(覆蓋)的注意事項

1,子類覆蓋父類,必須保證許可權大於或等於父類的許可權。

2,靜態覆蓋靜態

寫法上必須一模一樣:

函式的返回值型別,函式名,引數列表都要一樣。

classfu}

class

ziextends

fu }

class extendsdemo2

}

C 方法重寫(override)

重寫 override 重寫 類的繼承時發生,在子類中重新定義父類中的方法,子類中的方法和父類的方法是一樣的,即方法名,引數,返回值型別都相同。例如 基類方法宣告為virtual 虛方法 派生類中使用override宣告此方法的重寫.重寫override一般用於介面實現和繼承類的方法改寫,要注意 1...

Overload(過載)Override 重寫

override 重寫 1 方法名 引數 返回值相同。2 子類方法不能縮小父類方法的訪問許可權。3 子類方法不能丟擲比父類方法更多的異常 但子類方法可以不丟擲異常 4 存在於父類和子類之間。5 方法被定義為final不能被重寫。overload 過載 1 引數型別 個數 順序至少有乙個不相同。2 不...

覆寫 重寫(override)

如果子類定義了與父類完全相同 不算許可權 的方法或者屬性的時候,這種操作就稱為覆寫。子類定義了與父類方法名稱,引數列表,方法返回值完全相同的方法。子類不能擁有比父類更嚴格的訪問控制許可權。並且不能出現private關鍵字 判斷呼叫的是父類方法還是子類方法 a.看new 在哪 當前使用的物件是通過哪個...