多型:就是允許不同的類的物件對同乙個訊息做出不同的響應。根據傳送物件的不同採用不同的行為方式。
比如演奏鋼琴時呼叫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 重寫方法的引數列表必須完全與被重寫的方法的相同,否則不能稱其為重寫而是過載...