日期:2014-05-20  浏览次数:20730 次

请问一下 @Override 是什么意思 不写可以吗
我看的教程里 有这么一段代码 请问 其中 @Override 是干什么用的,是不是可以不写?

01 abstract class Animal {
02 abstract void makenoise();
03 }
04  
05 class Lion extends Animal {
06  
07 @Override
08 void makenoise() {
09 System.out.println("狮子吼!");
10 }
11 }
12  
13 class Dog extends Animal {
14  
15 @Override
16 void makenoise() {
17 System.out.println("狗叫!");
18 }
19 }

------解决方案--------------------
表示该方法是必须重写的,免得你一不小心改了方法名而导致多态调用时出现了不想要的结果
------解决方案--------------------
@override,表示此方法是实现或重写了父类的方法,不加也是可以的。

此注解的作用在于 标记这个方法肯定 是实现或重写父类的方法,在编译时,如果编译器发现此方法不是 实现或重写,则会编译失败。

如父类中有个方法为 abc
而子类写了个方法为 abcd,而且加了overide注解,那么 编译时就会提示错误信息