大可制作:QQ群:31564239(asp|jsp|php|mysql)

Java Gossip: 限定 Override 父类方法 - Override

java.lang.Override是J2SE 5.0中标准的Annotation类型之一,它对编译器说明某个方法必须是覆盖父类中的方法,编译器得知这项信息后,在编译程序时如果发现该方法 并非覆盖父类中的方法,就会回报错误。

举个例子来说,如果您在定义新类时想要覆盖toString()方法,您可能会写成这样:

  • CustomObject.java
public class CustomObject {
public String ToString() {
return "customObject";
}
}

在撰写toString()方法时,您因为打字错误或其它的疏忽,将之打成了ToString(),但您编译这个类时并不会出现任何的错误,编译器只当 您是定义了一个新的ToString()。

您可以使用java.lang.Override这个Annotation类型,在方法上加上一个@Override的Annotation,告诉编译器 您现在定义的这个类是覆盖父类中的同名方法,例如:

  • CustomObject.java
public class CustomObject {

@Override
public String ToString() {
return "customObject";
}
}

在编译程序时,编译器看到@Override这个Annotation,了解它必须检查这个方法是不是覆盖父类的ToString()方法,但父类 别中并没有这个方法,所以它会回报错误:
CustomObject.java:2: method does not override a method from its superclas
@Override
^
1 error

重新修改一下程序,编译时就不会有问题了:

  • CustomObject.java
public class CustomObject {

@Override
public String toString() {
return "customObject";
}
}

java.lang.Override是个Marker annotation,简单的说就是用于标示,annotation名称本身即包括了要给工具程序的信息。