[Java] 使用 @Override 注释的好处

重写函数和重载函数区别:

  • 重写的方法分散于不同的类中,因继承关系而关联。重载的方法可以在同一个类中,也可以在有继承关系的不同类中
  • 重写的方法有相同的签名和返回类型; 重载的方法有相同的方法名,但参数列表不同

为了避免错误,可以使用特殊的Java 语法,称为override annotation (重写注释),将 @Override 放在子类中的方法之前。例子:

public class CircleFromSimpleGeometricObject 
    extends SimpleGeometricObject {
    // other methods are omitted
    
    @Override
    public String toString() {
        return super.toString() + "\nradius is " + radius;
    }
} 

这个注释表示,被注释的方法必须重写超类中的方法。如果带有这个注释的方法没有重写超类中的方法,编译器将会报告错误。例如,如果 toString 误写成 tostring, 将会出现编译错误。如果没有这个注释,编译器不会报告错误。所以使用 @Override 可以避免错误。

( 一本Java书上翻译的:11.5 Overriding vs. Overloading)

展开阅读全文

没有更多推荐了,返回首页