重寫和過載的詳細解析

2021-09-27 07:45:17 字數 1055 閱讀 3304

指的是在同乙個類中,存在多個名稱相同的方法,但是這些方法的引數個數,引數型別,或者引數順序不同。在滿足前面三個條件任意其中乙個的情況下,方法的返回型別和訪問修飾符可以不同。

注意:僅僅只是方法的返回型別不同不能構成過載!!

public

class

test

// 引數個數1,引數型別int

public

void

koutufenfang

(int x)

// 引數個數1,引數型別float

public

void

koutufenfang

(double y)

// 引數個數2, 引數型別(float,int)

public

void

koutufenfang

(double x,

int y)

// 引數個數2,引數型別(int, float)

public

void

koutufenfang

(int y,

double x)

}

子類方法對父類方法的覆蓋,要求重寫方法的引數個數,型別,順序與被重寫的父類方法完全一致,返回型別必須與被重寫方法的返回型別相同或者是其子類,否則視為過載。重寫的方法的訪問修飾符必須大於等於被重寫方法的訪問修飾符(public > protected > default > private)。重寫方法一定不能拋出新的檢查異常或者比被重寫方法申明更加寬泛的檢查型異常。例如:父類的乙個方法申明了乙個檢查異常ioexception,在重寫這個方法是就不能丟擲exception,只能丟擲ioexception的子類異常,可以丟擲非檢查異常。

public

class

test

}class

parent

}class

children

extends

parent

}

過載和重寫

物件導向的三大特性 繼承 封裝 多型。過載和重寫是多型的兩種表現形式。過載和重寫又有什麼區別呢?1 層次不同 重寫 發生在父類和子類之間。是子類重寫父類的方法,具有相同的方法名和方法引數。比如說,父子兩人都去吃飯 相同的方法 吃的是麵條 引數 父親飯量大,吃兩碗,兒子飯量小,就能吃一碗 實現了吃飯的...

過載和重寫

asp.net unity開發 net培訓 期待與您交流!過載 乙個類裡面有多個方法,方法名稱是相同的,返回值可以不同,引數列表的個數 型別 順序不同。區分過載方法可以通過引數列表的個數 型別 順序來決定呼叫哪個方法。過載可以子類過載父類的方法,並且可以靜態非靜態之間轉換。重寫 覆蓋 一般是指父類和...

重寫 和 過載

型構就是指方法的組成結構,具體包括方法的名稱和引數,涵蓋引數的數量 型別以及出現的順序,但是不包括方法的返回值型別,訪問許可權修飾符,以及abstract static final等修飾符。1.public void method int i,string s 4.5.public string m...