在Java中,方法重寫是一種使用子類對父類中已有方法進行修改或擴展的技術。方法重寫允許子類使用自己的方式來實現(xiàn)父類的方法,使得繼承的成員變量和方法在子類中也可以使用。
在進行方法重寫的時候,子類的方法必須具備以下幾個要素:
方法名必須與父類中被重寫的方法名一致
方法的參數(shù)類型和個數(shù)必須與父類中被重寫的方法的參數(shù)類型和個數(shù)一致
方法的返回類型必須與父類中被重寫的方法的返回類型一致,或者是其子類
方法的訪問修飾符必須與父類中被重寫的方法的訪問修飾符相同或更為寬松
方法拋出的異常類型必須與父類中被重寫的方法的拋出的異常類型一致,或者是其子類
Java方法重載
Java中允許在一個類中定義多個同名方法,但是它們的參數(shù)列表必須不同,這就是Java方法重載。方法重載提供了一種更加簡潔的實現(xiàn),使得程序員可以使用相同方法名來定義不同的行為,并且可以使用不同的參數(shù)類型和方法數(shù)目。
在進行方法重載的時候,下面幾個要素必須不同:
方法名相同
參數(shù)個數(shù)不同或者參數(shù)類型不同或者參數(shù)順序不同
返回類型可以不同,但是方法重載的主要區(qū)別在于參數(shù)
Java方法重載和重寫的區(qū)別
Java中方法重載和方法重寫都允許在同一個類中命名相同的方法名,但是它們的實現(xiàn)方法和效果是不同的。
方法重載允許一個類中有多個方法共用同一個名稱,但是它們的參數(shù)類型和個數(shù)必須不同,調(diào)用的時候需要根據(jù)不同的參數(shù)來區(qū)分,這樣可以提供靈活的調(diào)用方式,但是代碼可讀性會隨著不同間的重載方法變得更加難以理解。
方法重寫是當一個父類的方法在子類中的實現(xiàn)不符合需要,需要進行覆蓋和擴展時的一種實現(xiàn)方式。子類重寫的方法和父類的方法在核心層面必須保持一致,但是子類可以在自己的方法中擴展和修改父類的方法行為,達到更好的效果,這樣大大增加了代碼的復用性。