Override注解的作用

本文详细介绍了Java中@Override注解的使用方法及其作用。解释了如何利用此注解进行父类方法的重写,并强调了它对于检测方法名拼写错误的重要性。此外,还对比了Java 6与Java 5在使用@Override注解时的不同行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果想重写父类的方法,比如toString()方法的话,在方法前面加上@Override, 系统可以帮你检查方法的正确性:

@Override
public String toString(){...} //这是正确的  

一旦错写成这样:

@Override
public String tostring(){...}

编译器可以检测出这种写法是错误的 这样能保证你的确重写的方法正确.

java.lang.Override是一个marker annotation类型,它被用作标注方法。它说明了被标注的方法重载了父类的方法,起到了断言的作用。
如果我们使用了这种annotation在一个没有覆盖父类方法的方法时,java编译器将以一个编译错误来警示。
这个annotaton常常在我们试图覆盖父类方法而确又写错了方法名时发挥威力。


Java6的@override注解与Java5不同之处:
首先看一下下面的示例代码:

// Parent.java
public class Parent {
  public void parentMethod() {
  }
} 

// IChild.java
public interface IChild {
  void interfaceMethod();
} 

// Child.java
public class Child extends Parent implements IChild {
  @Override
  public void parentMethod() {
  }
  @Override
  public void interfaceMethod() {
  }
} 

上述代码在jdk6下可以编译通过, 而在jdk5下编译无法通过,输出的错误信息如下:
Child.java:7: 方法未覆盖其父类的方法

上面的错误信息说在Child.java第7行的Override注解是不对的,不对的原因是该方法(interfaceMethod)不是父类方法。
也就是说java6认为类覆盖父类方法与实现接口方法都叫override,而jdk5不是这样认为的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值