多型 重寫 過載。

2021-07-22 18:47:18 字數 719 閱讀 9191

多型:就是允許不同的類的物件對同乙個訊息做出不同的響應。根據傳送物件的不同採用不同的行為方式。

比如演奏鋼琴時呼叫play()函式後返回的訊息是piano。

演奏手風琴時呼叫play()函式後返回的訊息是accordion。

這就是多型。

過載就是除了引數的個數或者引數的型別不同外,其他都相同的多個方法。

比如:public int play(){........};

public int play(int x,int y);

public int play(string x,int y);

以上的三個函式就是屬於過載。

另外強調一點:只有返回型別不同不算是過載!只有返回型別不同不算是過載!只有返回型別不同不算是過載!!!

原因:有時候你不需要器返回值,如果你呼叫了型別不同的過載函式,那麼編譯器將不知道呼叫哪乙個函式。

例子如下:

public int play(int x,int y);//返回int型

public voidplay(int x,int y);//返回void型

在函式中只是呼叫,並沒有賦值的話:

public static void main(string args){

int a=1;

int b=2;

play(a,b);//編譯器不知道將呼叫哪乙個函式了。

在main方法中不知道將要呼叫哪乙個play()函式了。

重寫,過載,多型

override是重寫 覆蓋 了乙個方法,以實現不同的功能。一般是用於子類在繼承父類時,重寫 重新實現 父類中的方法。class a public b overload是過載,一般是用於在乙個類內實現若干過載的方法,這些方法的名稱相同而引數形式不同。void add void add int a 繼...

重寫 覆蓋 過載 多型

這篇部落格很亂,關於過載 隱藏 覆蓋的相關知識,看另一篇部落格 參考部落格 其實多型和過載不是乙個層次上的問題,重寫 覆蓋 過載 隱藏常放在一起討論,多型是重寫 覆蓋 下的一種特殊情況,即基類的函式被virtual修飾了。1 多型和過載的區別 多型是基於對抽象方法的覆蓋來實現的,用統一的對外介面來完...

重寫 覆蓋 過載 多型

override 重寫 覆蓋 overload 過載 polymorphism 多型override是重寫 覆蓋 了乙個方法,以實現不同的功能。一般是用於子類在繼承父類時,重寫 重新實現 父類中的方法。重寫 覆蓋 的規則 1 重寫方法的引數列表必須完全與被重寫的方法的相同,否則不能稱其為重寫而是過載...