過載和覆蓋重寫

2021-09-05 11:37:43 字數 2172 閱讀 6716

過載即在同乙個類中,方法名稱相同,引數列表不同(引數列表的順序不同或者引數列表的個數不同)的方法,稱為過載。

public class overloaddemo 

public overloaddemo(string name, int age)

public overloaddemo(string name, int age, double score)

public static void main(string args)

}

1. 方法過載可以定義相同的方法名,方便閱讀。

2. 優化程式,使得編寫**更少。

1. 方法過載必須要在同乙個類中。

2. 過載必須方法名相同,引數不同(即引數的列表不同,引數的順序不一致,與引數的名稱無關)

3. 與修飾符和返回值型別無關。

public class overloaddemo 

public static void show(short num)

public static void show(char num)

public static void show(byte num)

public static void show(character num)

public static void show(integer num)

public static void main(string args)

}

輸出結果:

char型別遵循的結果為:char-->int-->long-->float-->double-->character(跟自己型別匹配的包裝型別)

基本資料型別遵循的結果: byte-->short-->int-->long-->float-->double-->(跟自己型別匹配的包裝型別(自動裝箱))

比如說:把byte傳參的方法注釋掉,則會輸出short9;其他同理

把所有的原始資料型別傳參的方法注釋掉,唯獨留下char、character、integer傳參的方法,在傳乙個字元的資料,列印的結果cahr:57,接著再注釋上次列印所屬的方法。再次列印得,character:9,同上一步,最後報錯。

重寫是指在子類和父類中具有相同的方法名稱,相同的返回值型別和引數列表,方法體可以不一樣。

1. 建立father類:

public class father 

public void setname(string name)

public int getage()

public void setage(int age)

public void mehtod()

int message(int age)

}

2. 建立son類繼承father類:

public class son extends father 

@override

public void mehtod()

@override

//子類的修飾符大於父類的修飾符

public int message(int age)

}

3. 測試方法:

public class testmain 

}

1. 必須發生在子父類中

2. 子父類中必須要有相同的方法名稱,相同的引數列表及其順序結構,返回值型別要一致

3. 子類的修飾符必須要大於父類的引數名稱

4. 父類的修飾符不能為private修飾

5. 當子類訪問的方法或者成員變數不在子類當中時,便會向上尋找。

C 過載和重寫 覆蓋

何為重寫?重寫 override 指子類修改父類中某個函式的函式體,需要重寫的父類中的函式必須是由virtual abstract 或 override標註的,不能重寫非虛方法或靜態方法。override是在繼承的時候,如果你寫的函式與要繼承的函式函式特徵 函式特徵包括函式名,引數的型別和個數 相同...

重寫 覆蓋 過載 多型

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

重寫 覆蓋 過載 多型

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