一、重寫override:
重寫是針對方法而言,發生在父類與子類之間。子類繼承父類後,子類要改變父類已經有的行為,就可以採用重寫的方式。和父類定義同名方法,引數個數、引數型別一致。這樣呼叫這個方法時,根據就近原則,預設就呼叫新覆蓋的方法,從而達到改寫目的。
1、方法名相同,引數個數、引數型別相同;
2、子類方法的訪問許可權應比父類方法的訪問範圍更大或相等;
(public>protected>default>private)
3、子類方法返回值型別應比父類方法返回值型別更小或相等;
4、子類方法宣告丟擲的異常類應比父類方法宣告丟擲的異常類更小或相等。
--例子:
public class fulei
public void print()
}class zilei extends fulei
}--結果:
子類
二、過載overload:1、在同乙個類中方法名相同;
2、引數個數不同;
3、引數的個數相同,但型別不同;
4、返回型別可以不同、訪問修飾符可以不同、丟擲的異常可以不同。
--例子:
public class overload
public void print()
public void print(string name)
}--結果:
hello
hello zy~
三、總結:比較
過載重寫
相同點方法名
都可以用於抽象方法和非抽象方法
方法型別
都可以用於抽象方法和非抽象方法
不同點引數列表
引數列表必須不一致
引數列表必須一致
返回值型別
返回值型別不做限制
返回值型別必須一致
範圍過載同乙個類中的方法
在繼承中,子類重寫父類的方法
次數方法的過載可以被過載多次,也可以用多個過載方法
父類的方法只能被重寫一次,重寫一般是兩個方法之間
許可權對許可權沒有要求
被重寫的方法不能擁有更嚴格的許可權
呼叫根據傳遞的引數來決定呼叫哪個方法
根據呼叫方法的物件來決定呼叫哪個方法
面試題:
重寫和過載的區別?
(答案見文末)
面試題答案:
見上文?
Java重寫Override和過載Overload
本文出自 吳孝城的csdn部落格 package cn.wuxiaocheng class animal class dogextends animal public class test 結果如圖 override表明這個方法是重寫其父類方法,沒有它不會報錯,但是沒有它時,下面重寫的方法名寫錯時系...
Overload(過載)Override 重寫
override 重寫 1 方法名 引數 返回值相同。2 子類方法不能縮小父類方法的訪問許可權。3 子類方法不能丟擲比父類方法更多的異常 但子類方法可以不丟擲異常 4 存在於父類和子類之間。5 方法被定義為final不能被重寫。overload 過載 1 引數型別 個數 順序至少有乙個不相同。2 不...
重寫 override)和過載(overload
摘要 首先重寫和過載都是多型的一種體現方式。過載是編譯期間的活動,重寫是執行期間的活動 其次,過載是在乙個類中定義相同的名字的方法,方法的引數列表或者型別要互相不同,但是返回值型別不作為是否過載的標準,可以修改可見性 重寫是不同的,要求子類重寫基類的方法時要與父類方法具有相同的引數型別和返回值,可見...