【Java】Override 注解

举报
兮动人 发表于 2022/04/20 09:32:30 2022/04/20
【摘要】 1. 注解的理解 2. 基本的 Annotation 介绍 3. @Override 注解–案例 4. Override 使用说明 1. 注解的理解注解(Annotation)也被称为元数据(Metadata),用于修饰解释 包、类、方法、属性、构造器、局部变量等数据信息。和注释一样,注解不影响程序逻辑,但注解可以被编译或运行,相当于嵌入在代码中的补充信息。在 JavaSE 中,注解的使用...

1. 注解的理解

  1. 注解(Annotation)也被称为元数据(Metadata),用于修饰解释 包、类、方法、属性、构造器、局部变量等数据信息。
  2. 和注释一样,注解不影响程序逻辑,但注解可以被编译或运行,相当于嵌入在代码中的补充信息。
  3. 在 JavaSE 中,注解的使用目的比较简单,例如标记过时的功能,忽略警告等。在 JavaEE 中注解占据了更重要的角色,例如用来配置应用程序的任何切面,代替 java EE 旧版中所遗留的繁冗代码和 XML 配置等。

2. 基本的 Annotation 介绍

  • 使用 Annotation 时要在其前面增加 @ 符号,并把该 Annotation 当成一个修饰符使用。用于修饰它支持的程序元素
  • 三个基本的 Annotation
  1. @Override:限定某个方法,是重写父类方法, 该注解只能用在方法中
  2. @Deprecated:用于表示某个程序元素(类、方法等)已过时
  3. @SuppressWarnings:抑制编译器警告

3. @Override 注解–案例

  • @Override:限定某个方法,是重写父类的方法,该注解只能用于方法上
  • 如果写了@Override注解,编译器就会去检查该方法是否真的重写了父类的方法,如果的确实重写了,则编译通过,如果没有构成重写,则编译错误
public class Override_ {
    public static void main(String[] args) {

    }
}
class Father{//父类

    public void fly(){
        int i = 0;
        System.out.println("Father fly...");
    }
    public void say(){}

}

class Son extends Father {//子类
    //解读:
    //1. @Override 注解放在fly方法上,表示子类的fly方法时重写了父类的fly
    //2. 这里如果没有写 @Override 还是重写了父类fly
    //3. 如果你写了@Override注解,编译器就会去检查该方法是否真的重写了父类的
    //   方法,如果的确重写了,则编译通过,如果没有构成重写,则编译错误
    //4. 看看 @Override的定义
    //   解读: 如果发现 @interface 表示一个 注解类
    /*
        @Target(ElementType.METHOD)
        @Retention(RetentionPolicy.SOURCE)
        public @interface Override {
        }
     */
    @Override   //说明
    public void fly() {
        System.out.println("Son fly....");
    }
    @Override
    public void say() {

    }
}
  • 补充说明:
    @interface的说明
    此interface不是接口中的interface,是注解类,jdk1.5之后加入的
    在这里插入图片描述

4. Override 使用说明

  1. @Override表示指定重写父类的方法(从编译层面验证),如果父类没有此方法,则会报错
  2. 如果不写@Override注解,而父类仍有public void fly(){ },仍然构成重写
  3. @Override只能修饰方法,不能修饰其它类、包、属性等
  4. 查看@Override注解源码为@Target(ElementType.METHOD),说明只能修饰方法
  5. @Target是修饰注解的注解,称为元注解
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。