@Override用来表示某一个方法是重写的父类的方法。
举例
public class Parent {
public void method1(){
System.out.println("我是父类的方法一");
}
}
public class Son extends Parent {
@Override
public void method1(){
System.out.println("子类的方法");
}
}
public static void main(String[] args) {
Parent p=new Son();
p.method1();
}
子类重写了父类的method1方法,通过父类实例化子类,调用method1实际调用的是子类重写的父类的方法。
当然@Override去掉也可以不会出错。但如果子类想重写父类的方法却写错了方法名,如下
public class Son extends Parent {
@Override
public void method2(){
System.out.println("子类的方法");
}
}
误将方法名写错,没有@Override标识,实际运行的还是父类的方法。如果架上@Override标识,则编译不能通过。
@Override的作用就是检测该方法,是否在父类中出现过,如果有则可以重写,没有则不亦不能通过。这样避免了想重写方法却写错方法名的情况。