JAVA物件導向中的 過載與重寫的 區別

2021-09-05 10:51:42 字數 1068 閱讀 4580

1、過載:發生在本類中,方法名相同,引數列表不同(基本定義)

作用:呼叫同乙個方法,根據傳遞的引數問題訪問具體的某乙個方法

比如:

public static void aa()

public static void aa(int a)

public static void aa(int a,int b,string s)

當我們呼叫:

1.1 aa(); 輸出的是 「我是無引數aa()」 (控制台中沒有雙引號,寫上是告訴大家結果是字串型別)

1.2 aa(10); 輸出的是 「我是有引數aa()」

1.3 aa(10,20,「abc」); 輸出的是 「我是多個引數aa()」 (注意,傳遞引數的位置一定要和創造aa方法時定義的位置一一對應)

2、重寫:發生在父子類中,方法名相同,引數列表也要相同(基本定義)

作用:一般是因為父類中的方法被子類繼承過來,但是子類發現父類的該方法功能不符合或者不夠用的時候,就可以重寫該方法了

比如:

public class 父類

}public class 子類 extends 父類

}

當我們呼叫:

1、父類 f = new 父類(); f.aa(); 輸出的是 「呼叫父類aa()」

2、子類 z = new 子類(); z.aa(); 輸出的是 「呼叫子類aa()」

3、父類 fz = new 子類(); 向上造型,也在這裡會體現多型的意義

fz.aa(); 一般來說,能點出什麼方法出來看的是 fz這個引用的型別,發現是父型別,只能呼叫父類裡的方法,但是如果子類重寫了該方法,則呼叫的是子類該方法 輸出的是 「呼叫子類aa()」

1、過載: 和返回值型別、修飾詞無關

2、重寫:

2.1 私有方法不能被重寫

2.2 返回值型別:

基本型別時必須一樣

引用型別(介面、抽象類)時必須小於或者等於

2.3 修飾詞:

基本型別和引用型別都必須等於或者大於

3、注意:static修飾的方法不能被重寫

java中的重寫與過載

重寫是子類對父類的允許訪問的方法的實現過程進行重新編寫,返回值和形參都不能改變。即外殼不變,核心重寫!重寫的好處在於子類可以根據需要,定義特定於自己的行為。也就是說子類能夠根據需要實現父類的方法。重寫方法不能拋出新的檢查異常或者比被重寫方法申明更加寬泛的異常。例如 父類的乙個方法申明了乙個檢查異常 ...

java中的重寫與過載

重寫是指子類對父類方法的實現過程進行重新編寫,返回值和形參都不能改變。重寫的好處在於子類可以根據需要,定義特定於自己的行為。public class animal public class dog extends animal public class testdog 編譯並執行,結果如下 move...

java 過載與重寫

方法過載 同乙個類裡面有多個同名的方法,這些方法除了名字相同,其他地方都可以不相同。例如 class just protected int try1 int i 方法重寫 子類中有乙個方法與父類中的某乙個方法名相同,除了方法體不同,其他地方都是相同的例如 class parent class chi...