package com.btp.t4; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; import java.util.List; /* * 元数据:修饰实体的修饰词 * * 注解 * 1.JDK提供的常用的注解 * @Override:限定重写父类方法,该注释只能用于方法 * @Deprecated:用于表示某个程序元素(类,方法等)已过时。但是还是可以调用这些程序元素。 * 只是告诉你这些程序元素在将来的某一天会弃用 * @SuppressWarning:抑制编译器警告 * 2.如何自定义一个注解: @interface * 3.元注解:用于修饰其它Annotation定义 * @Retention * @Target * @Documented * @Inherited * * */ public class TestAnnotation { public static void main(String[] args){ Human hum=new Student(); hum.walk(); hum.eat();//还是会执行 @SuppressWarnings({ "rawtypes", "unused" }) //一个警告是“没有使用泛型“,另一个是”还没有用“。@SuppressWarnings是抑制这些警告 List list=new ArrayList(); } } @MyAnnotation(value="btp-java") class Student extends Human{ @Override public void walk(){ System.out.println("学生走路"); } @Override public void eat(){ System.out.println("学生吃饭"); } } class Human{ String name; int age; public void walk(){ System.out.println("走路"); } @Deprecated public void eat(){ System.out.println("吃饭"); } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Human(String name, int age) { super(); this.name = name; this.age = age; } public Human() { super(); // TODO 自动生成的构造函数存根 } @Override public String toString() { return "Human [name=" + name + ", age=" + age + "]"; } } //自定义注解 @Retention(RetentionPolicy.CLASS) @interface MyAnnotation{ String value() default "hello"; }