一、 Override定義
Override是Java中的一個關鍵字,表示方法重寫。方法重寫的意思是當我們繼承父類後,重新編寫一個與父類中方法名和參數列表相同的方法體,但是方法體中的實現與父類中不同,我們就成了方法重寫。
二、Override用法
Override的用法存在一定的限制,具體如下:
1. 方法名必須與被重寫方法一樣。
2. 參數列表必須與被重寫方法一樣。
3. 訪問許可權必須不能少於被重寫方法的訪問許可權。
4. 返回值類型必須是被重寫方法的返回值類型或者其子類型。
5. 方法重寫不能拋出新的或更廣的異常。
三、Override注意事項
Override情況下需要注意以下幾點:
1. 重寫方法不能使用比被重寫方法更為嚴格的訪問許可權修飾符,如父類中的方法聲明為public,則子類中的該方法只能聲明為public,不能聲明為protected或private(也就是說,子類中的重寫方法的訪問許可權修飾符不能小於父類中被重寫的方法的訪問許可權修飾符)。
2. 建議加上@Override註解,方便理解。
3. 靜態方法不能被重寫。
四、Override示例
//父類 public class Person { int age; void sayHello(){ System.out.println("Hello"); } } //子類 public class Student extends Person { int grade; @Override void sayHello(){ System.out.println("Hello, I am a student"); } }
在上述示例中,我們重寫了Person類中的sayHello()方法,在子類Student中重新定義其方法體。當我們創建Student對象,調用sayHello()方法時,輸出的為「Hello, I am a student」,而不是「Hello」。
五、小結
Override是Java中的一個非常重要的特性,使用Override可以較好的解決繼承關係中的衝突問題,而且可以通過Override註解方便了解子類中方法是被重寫的。在使用Override時,需要注意一些細節問題,比如訪問許可權,返回值類型等等。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/279503.html