Java注解详解之@Override注解

 更新时间:2023年11月15日 15:14:45   作者:CodeCrusher  
这篇文章主要给大家介绍了关于Java注解之@Override注解的相关资料,@Override是Java中的一个注解,表示一个方法是重写(Override)了父类中的方法,文中通过代码介绍的非常详细,需要的朋友可以参考下

1.是什么

@Override注解是伪代码,用于表示被标注的方法是一个重写方法。

@Override注解,只能用于标记方法,并且它只在编译期生效,不会保留在class文件中。

@Override 检查该方法是否是重写方法。如果发现其父类,或者是引用的接口中并没有该方法时,会报编译错误。

@Override注解标记的方法声明,如果没有覆写或者实现超类的方法声明,或者不是覆写Object的public方法,那么编译就会报错。使用@Override注解,有助于我们尽早发现这样的错误:本来想声明一个“覆写”方法,却偶然声明成“重载”方法。

2.为什么用

既然不写@Override也可以重写父类的方法,那为什么非要“多此一举”写上这个注解呢?

使用@Override注解主要有两个好处:

1)帮助自己检查是否正确的重写父类方法

2)明显的提示看代码的人,这是重写的方法

3.举例说明

1)示例一

public class Person {
    private String name;
    private String sex;
    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                '}';
    }
}

上述代码是重写 Object 类的 toString() 方法,该方法使用 @Override 注解。如果 toString() 不小心写成了 t0String(),那么程序会发生编译错误。会有如下的代码提示:

类型为 Person 的方法t0String()必须覆盖或实现超类型方法

2)示例二

public class Person {

    private String name;

    /**
     * 标记Override,会报错,因为这是equals方法重载
     */
    @Override
    public boolean equals(Person person){
        return this.name.equals(person.name);
    }

    /**
     * 覆写Object的equals方法
     */
    @Override
    public boolean equals(Object person){
        return this.name.equals(((Person)person).name);
    }
}

3)示例三

public class Animal {
    public void eat(){
        System.out.println("吃饭");
    }
}
public class Dog extends Animal{
    @Override
    public void eat(){
        System.out.println("狗会吃饭");
    }
}

声明两个类Animal和Dog,Dog类继承了Animal类并且对其eat方法进行了重写;可以发现在重写eat方法时我们加上了@Override注解,其实不加这个注解代码也不会出现问题;但如果在开发过程中不小心写错方法名或者写错了参数,但这是符合语法规范的,能够顺利通过编译;但相关业务功能没能实现,这就会降低我们的开发效率,增加开发成本,这也就是为什么要用@Override注解的原因。

代码的可读性是非常重要的,我们写的代码很多时候会被别人看到或者修改,加上@Override注解会让看代码的人一眼明白,这个方法是重写了父类的方法,可读性更佳!

总结

到此这篇关于Java注解详解之@Override注解的文章就介绍到这了,更多相关详解@Override注解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • JavaWeb简单文件上传流程的实战记录

    JavaWeb简单文件上传流程的实战记录

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,下面这篇文章主要给大家介绍了关于JavaWeb实现简单文件上传流程的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • 浅谈javaSE GUI (Action事件)

    浅谈javaSE GUI (Action事件)

    下面小编就为大家带来一篇浅谈javaSE GUI (Action事件)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • JAVA获取CLASSPATH路径的方法详解

    JAVA获取CLASSPATH路径的方法详解

    这篇文章主要介绍了Java 中获取类路径 classpath 的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • Ubuntu环境下的 RabbitMQ 安装与配置详细指南

    Ubuntu环境下的 RabbitMQ 安装与配置详细指南

    本文详解Ubuntu下RabbitMQ安装与配置,涵盖Erlang依赖安装、服务部署、管理界面启用及安全用户权限设置,强调多协议支持、高可用性设计和分布式场景适配,助力构建稳定可靠的消息队列系统,感兴趣的朋友跟随小编一起看看吧
    2025-09-09
  • 浅谈导入JavaWeb 项目出现的问题

    浅谈导入JavaWeb 项目出现的问题

    这篇文章主要介绍了导入JavaWeb 项目出现的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • SpringBoot 使用 Sa-Token 完成权限认证的操作方法

    SpringBoot 使用 Sa-Token 完成权限认证的操作方法

    Sa-Token是一款轻量级Java权限认证框架,适用于快速搭建权限系统,它提供了丰富的功能,下面给大家介绍SpringBoot 使用 Sa-Token 完成权限认证的相关操作,感兴趣的朋友跟随小编一起看看吧
    2025-02-02
  • 关于thymeleaf判断对象是否为空的相关逻辑处理

    关于thymeleaf判断对象是否为空的相关逻辑处理

    这篇文章主要介绍了关于thymeleaf判断对象是否为空的相关逻辑处理,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • Java中Optional.of()方法及源码解析(非常详细!)

    Java中Optional.of()方法及源码解析(非常详细!)

    这篇文章主要给大家介绍了关于Java中Optional.of()方法及源码解析的相关资料,Java中java.util .Optional类的of()方法用于获得该Optional类中具有指定类型的指定值的一个实例,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-06-06
  • SpringBoot 表单提交全局日期格式转换器实现方式

    SpringBoot 表单提交全局日期格式转换器实现方式

    这篇文章主要介绍了SpringBoot 表单提交全局日期格式转换器,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • JavaWeb实现文件上传下载功能实例解析

    JavaWeb实现文件上传下载功能实例解析

    这篇文章主要为大家详细介绍了JavaWeb中的文件上传和下载功能的实现,在Web应用系统开发中,文件上传和下载功能是非常常用的功能,需要的朋友可以参考下
    2015-08-08

最新评论