比如重载toString函数,若前面不加那个@Override后果是什么?就不重载了?
@Override
public String toString()
{
return description;
}
1.帮助自己检查是否正确的复写了父类中已有的方法
2.告诉读代码的人,这是一个复写的方法
关于第一点,我给你再说明一下:
假设你现在要覆盖一个方法,然后因为你粗心,写错了参数的类型,刚好你又没有写@override注解,那么编辑器(eclipse)就不会提示你。
这时候就产生了一个隐藏的bug,明明是准备复写方法,结果却是重载了方法。
// 父类的方法:
public void test(int i) {
System.out.println(i);
}
// 子类重写
// 第一种写法,正确
@Override
public void test(int i) {
System.out.println(i + 1);
}
// 注意:这里因为人为粗心导致 i 的类型写成 float,没有写@Override注解,编辑器不会报错,那这里方法覆盖就变成了方法重载。
public void test(float i) {
System.out.println(i + 1);
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。