开发者社区> 问答> 正文

关于java中重载函数前@Override注解?

比如重载toString函数,若前面不加那个@Override后果是什么?就不重载了?

 @Override
    public String toString()
    {
        return description;
    } 

展开
收起
蛮大人123 2016-03-17 15:05:40 3698 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    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);
    }
    2019-07-17 19:05:28
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载