坚持使用Override注解。

这个注解只能用在方法声明中,他表示被注解的方法声明覆盖了超类型的一个声明。如果坚持使用这个注解,剋呀防止一大类的非法错误。

如果你在编写一个没有标准为抽象的类,并且确信他覆盖了抽象的方法,在这种情况下,就不必将Override注解放在该方法上了。在没有声明为抽象的类中,如果没有覆盖抽象的超类方法,编译器就会发出一条错误消息。但是,你可能希望关注类中所有覆盖超类方法的方法,在这种情况下,也可以放心的标注这些方法。

现代的IDE提供了坚持使用Override注解的另一种理由。这种IDE具有自动检查功能,称作代码检验(code inspection)。如果启用相应的代码检验功能,当有一个方法没有Override注解,却覆盖了超类方法时,IDE就会产生一条警告。如果坚持使用Override注解,这些警告就会提醒你警惕无意识的覆盖。这些警告补充了编译器的错误消息,提醒你警惕无意识的覆盖失败。IDE和编译器,可以确保你覆盖任何你想要覆盖的方法,无一遗漏。

如果你是用的是Java1.6或者更新的发行版本,Override注解在查找Bug方面还提供了更多的帮助。在Java 1.6发行版本中,在覆盖接口以及类的方法声明中使用Override注解变成是合法的了。在被声明为去实现某接口的具体类中,不必标注出你想要这些方法来覆盖接口方法,因为如果你的类没有实现每一个接口方法,编译器就会产生一条错误信息。当然,你可以选择只包括这些注解,来标明他们是接口方法,但是这并非绝对必要。

但是在抽象类或者接口中,还是值得标注所有你想要的方法,来覆盖超类或者超接口方法,无论是具体的还是抽象的。例如,Set接口没有给Collection接口添加新方法,因此他应该在他的所有方法声明中包括Override注解,以确保他不会意外的给Collection接口添加任何新方法。

总而言之,如果在你想要的每个方法声明中使用Override注解来覆盖超类声明,编译器就可以替你防止大量的错误,但有一个例外。在具体的类中,不必标注你确信覆盖了抽象方法声明的方法(虽然这么做也没有什么坏处)。

猜你喜欢

转载自blog.csdn.net/en_joker/article/details/80966943
今日推荐