簡單來說@override註解是告訴編譯器,下面的方法是重寫父類的方法。
如果不寫@override註解去直接重寫方法,編譯器是不會判斷你是不是正確重寫了父類中的方法的。如重寫方法時引數與父類不同,程式是不會提示報錯的。這會留下乙個潛在的bug。
當你寫了@override註解時,程式會判斷你是否正確的重寫了父類的對應方法。而且加上此註解後,程式會自動遮蔽父類的方法。
補充:一般來說,寫與不寫沒什麼區別,jvm可以自識別。
寫的情況下:即說明子類要覆蓋基類的方法,基類必須存在方法 (控制型別public,protected,返回值,引數列表型別)與子類方法完成一致的方法,否則會報錯(找不到被override的方法)。
在不寫@override註解的情況下,當基類存在與子類各種條件都符合的方法時實現覆蓋;如果條件不符合時,則是當成新定義的方法使用。
所以如果想覆蓋基類方法時,最好還是寫上@override註解,這樣有利於編譯器幫助檢查錯誤。
類在繼承類的同時實現多介面
介面和類之間可以通過實現產生關係,同時類與類之間可以通過繼承產生關係。當乙個類已經繼承了乙個父類,它又需要擴充套件額外的功能,這時介面就派上用場了。子類通過繼承父類擴充套件功能,通過繼承擴充套件的功能都是子類應該具備的基礎功能。如果子類想要繼續擴充套件其他類中的功能呢?這時通過實現介面來完成。cla...
介面,實現類
建立乙個dao介面,建立乙個dao實現類 public inte ce customerdao 建立乙個dao實現類 public class customerdaoimpl implements customerdao catch sqlexception e finally catch sqle...
實現介面事件,在介面中實現事件
可以在介面中宣告事件,然後在類中實現該事件的引用。在為方法訂閱事件時,可以訂閱介面宣告的事件,也可以訂閱類中的事件。class inte ceevent static void handlershapechanged object sender,customeventargs e e.area pu...