提示四十:始终使用Override注解。
文章先给了一个没有使用Override注解的例子,并让读者寻找问题。我看了一会在没有对比其他代码的情况下真的没有看出来问题在哪儿。原来是equals参数的类型不对导致方法没有被重写而是被重载了。
public boolean equals (Bigram b){
return b.first == first && b.second == second;
}
public int hashCode () {
return 31 * first + second;
}
所以作者提出使用Override注解可以帮助我们规避这种因为拼写或者入参等带来的问题。同时作者提出,如果重写的是抽象的类或者接口,因为编译器会因为方法没有背重写报错,所以这个时候可以省略这个注解。
我平时工作的时候需要用到这个注解的时候大多是面向接口编程,这个时候就可以用idea自带的提示一键生成所有没有被实现的接口,然后逐一修改实现。不过有时候真的需要修改像equals等方法的时候,使用Override注解还是可以帮我们省去很多粗心带来的问题,是个好习惯。
网友评论