過載與重寫

2021-08-21 22:21:42 字數 975 閱讀 5802

重寫(override):子類對父類的允許訪問的方法的實現過程程序重新編寫,返回值和引數型別都不改變

方法的重寫規則:

1)引數列表、返回型別必須與重寫方法相同

2)訪問許可權不能比父類中被重寫的方法的訪問許可權更低

3)父類的成員方法只能被子類重寫

4)宣告為final的方法不能被重寫

5)宣告為static的方法不能被重寫,但是能夠被再次宣告

6)子類和父類在同乙個包中,那麼子類可以重寫父類所有方法,除了宣告為private和final的方法

子類和父類不在同乙個包中,那麼子類只能夠重寫父類的宣告為public和protected的非final方法

7)重寫的方法能夠丟擲任何非強制異常,無論被重寫的方法是否丟擲異常。但是,重寫的方法不能拋出新的強制性異常,或者

比被重寫方法宣告的更廣泛的強制性異常,反之則可以(例:父類丟擲了ioexception異常,子類重寫就不能丟擲乙個                 exception異常)

8)構造方法不能被重寫

9)如果不能繼承乙個方法,則不能重寫這個方法

class animal

}class pig extends animal

public void sleep()

}public  class test

}

過載(overload):在乙個類裡面,方法名相同,而引數不同,返回型別可以相同也可以不同

過載規則:

1)被過載的方法必須改變引數列表和返回型別

2)被過載的方法可以改變訪問修飾符

3)被過載的方法可以宣告新的或更廣的檢查異常

4)方法能夠在同乙個類中或者乙個子類中被過載

class dog

public void bark(int n)

}}

重寫與過載

override 為覆蓋又叫重寫,從字面就可以知道,它是覆蓋了乙個方法並且對其重寫,以求達到不同的作用。對我們來說最熟悉的覆蓋就是對介面方法的實現,在介面中一般只是對方法進行了宣告,而我們在實現時,就需要實現介面宣告的所有方法。除了這個典型的用法以外,我們在繼承中也可能會在子類覆蓋父類中的方法。在覆...

過載與重寫

過載與重寫 面對過載與重寫有時會像失憶一樣,將這兩個內容搞混。在實際運用中,我們一般是不會混的。但在給別人講述的過程中,可能會出現張冠李戴將兩個名詞搞混,這是不利於傳播的。讓我們來一起加深一下 過載 相同函式名稱,不同引數或不同引數型別。舉個例子 class oneclass public doub...

重寫與過載

重寫方法的規則 1.引數列表必須完全與被重寫的方法的相同,否則不能稱其為重寫而是過載.2.返回的型別必須一直與被重寫的方法的返回型別相同,否則不能稱其為重寫而是過載.3.訪問修飾符的限制一定要大於被重寫方法的訪問修飾符 public protected default private 4.重寫方法一...