淺談java中的重載和重寫的區(qū)別
1.重載
重載指在一個類中,具有多個相同名稱的方法,他們的參數列表卻不相同
(參數類型不同、參數個數不同甚至是參數順序不同)
重載對返回類型沒有要求,可以相同也可以不同,但是不能返回類型來判斷他們是否是重載。
例如
package HelloWorld;
public class Zuoye {
public static void main(String[] args) {
Zuoye z = new Zuoye();
z.fangfa1();
z.fangfa1("張旭");
}
public void fangfa1() {
System.out.println("方法1");
}
public void fangfa1(String name) {
System.out.println("也是方法1,不過有參數"+ name);
}
}
小結:
1.重載是一個類中多態(tài)性的一種表現(xiàn)
2.重載是在一個類中,具有相同名稱不同參數列表的方法
3.重載不能根據返回類型的相同或者不同來區(qū)分重載函數。
2.重寫
1.重寫是指在不同類中,將父類的方法在子類中重新寫一遍,子類繼承了父類原有的方法,但有時又不想繼承父類原有一模一樣的方法,所以就在返回類型,方法名,參數列表相同的情況下,對方法體進行修改進行重寫,這就是重寫。但注意的是 子類的訪問修飾符不能比父類的更嚴格(意思就是父類的訪問修飾符要更加 嚴謹,權限更少,父親嚴格)
例如
package HelloWorld;
public class Father {
public static void main(String[] args) {
Son s = new Son();
s.fangfa();
}
public void fangfa() {
System.out.println("我是爸爸的方法");
}
}
class Son extends Father {
public void fangfa() {
System.out.println("我是兒子的方法");
}
}
返回結果是

小結:
1. 發(fā)生在父類和子類關系之間
2. 他們的返回類型,方法名,列表參數相同 方法體不同。
3.子類不能比父類更嚴格 ,(父親比兒子嚴格)。
4重寫方法一定不能拋出新的檢查異?;蛘弑缺恢貙懛椒ㄉ昝鞲訉挿旱臋z查型異常

private 最嚴格。
private : 在同一類內可見。使用對象:變量、方法。 注意:不能修飾類(外部類)
default (即缺省,什么也不寫,不使用任何關鍵字): 在同一包內可見,不使用任何修飾符。使用對象:類、接口、變量、方法。
protected : 對同一包內的類和所有子類可見。使用對象:變量、方法。 注意:不能修飾類(外部類)。
public : 對所有類可見。使用對象:類、接口、變量、方法
總結重載和重寫的區(qū)別:
答:方法的重載和重寫都是實現(xiàn)多態(tài)的方式 ,區(qū)別在于重載實現(xiàn)的是編譯時的多態(tài)性,重寫實現(xiàn)的運行時的多態(tài)性。
重載是在發(fā)生在同一個類中,他們有相同的方法名 ,但有不同的參數列表,重載對返回類型沒有特別要求,不能根據返回類型來進行區(qū)分 。
而重寫發(fā)生在不同類中,發(fā)生在子類和父類之間的,重寫要求子類與父類的被重寫方法具有相同的返回類型,名稱和參數列表。 但他們的方法體要不同。 同時,父類相較于子類,他的訪問修飾符會更加嚴格,即訪問范圍更小。比父類被重寫方法更好訪問,不能比父類被重寫方法聲明更多的異常(里氏代換原則) 。
總結
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!
相關文章
Java中double和float類型的區(qū)別與使用方法
float和double都是用來表示浮點數的數據類型,但是它們之間有一些區(qū)別,這篇文章主要給大家介紹了關于Java中double和float類型的區(qū)別與使用方法的相關資料,需要的朋友可以參考下2024-07-07
Android、iOS和Java通用的AES128加密解密示例代碼
現(xiàn)在很多App在與服務器接口的請求和響應過程中,為了安全都會涉及到加密和解密的問題,如果不加的話就會是明文的,即使加了GZIP也可以被直接解壓成明文。如果同時有Android和IOS的App的話、必須要保證加密和解密的算法一致、不然后臺沒法處理,下面通過這篇文章學習下。2016-11-11
Java實現(xiàn)warcraft?java版游戲的示例代碼
致敬經典的warcraft,《warcraft?java版》是一款即時戰(zhàn)略題材單機游戲,采用魔獸原味風格和機制。本文將用java語言實現(xiàn),采用了swing技術進行了界面化處理,感興趣的可以了解一下2022-09-09

