https://www.bilibili.com/video/av47426548?p=502
看这个即可
package annotation; import java.sql.Date; /* * 注解 * java三大基础注解 * 1.@Override 在编译时检查是否是重写方法 * 2.@Deprecated 用于表示所修饰的元素(类,方法等)已经过时 * 3.@suppressWarnings 一直编译器警告 * * 自定义注解 * * * jdk中的四大元注解 * 元数据:对现有数据的修饰数据, * String name = "abc",这三个结构中最核心的数据是"abc" * String 和 name 是 数据的类型和名,都属于元数据 * 元注解:对现有注解进行修饰的注解 * 1.Retention: 用于指定该注解的生命周期,有SOURCE(源文件保留,编译器丢弃),CLASS(类保留,jvm丢弃),RUNTIME(运行保留,jvm保留,可通过反射获得) * 2.Target:被修饰的注解的修饰范围,(如能修饰类,方法,形参...) TYPE,FIELD,METHOD... * 3.Documented:javadoc不包含注解,但加了那么该修饰那么对应注解会被javadoc所包含 * 4.Inherited:被它修饰的注解具有继承性 * * */ class Person{ private String name; private int age; public Person(String name, int age) { super(); this.name = name; this.age = age; } public void walk() { System.out.println("walk"); } public void eat() { System.out.println("eat"); } } class Student extends Person implements Info{ public Student(String name, int age) { super(name, age); } @Override public void walk() { System.out.println("学生 walk"); } @Override public void eat() { System.out.println("学生 eat"); } /*@Override public void show1() { //这里加了个1就报错了 // TODO Auto-generated method stub } */ @Override public void show() { } } interface Info{ void show(); } public class AnnotationTest { public static void main(String []args) { @Deprecated Date date = new Date(2020,10,10); @SuppressWarnings("unused") int num = 10; } }