@Override是伪代码,是“覆盖”,“重写”的意思
(当子类继承父类时,不写@Override其实也是可以的。)
写了以后好处如下:
1. 作为注释,方便阅读
2. 编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错。
例如,你如果没写@Override,而你下面的方法名又写错了,这时你的编译器是可以编译通过的,因为编译器以为这个方法是你的子类中自己增加的方法。
举例:在重写父类的onCreate时,在方法前面加上@Override 系统可以帮你检查方法的正确性。
例如此时我要重写一个父类的onCreate方法
@Override public void onCreate(Bundle savedInstanceState) {…….}
这种写法是正确的,但如果写成:
@Override public void oncreate(Bundle savedInstanceState) {…….}
编译器会报如下错误:
The method oncreate(Bundle) of type HelloWorld must override or implement a supertype method,以确保你正确重写onCreate方法(因为oncreate应该为onCreate)。
而如果不加@Override,则编译器将不会检测出错误,而是会认为你为子类定义了一个新方法:oncreate