1、@Override注解放在fly方法上,表示子类的fly方法时重写了父类的fly
2、这里如果没有写@Override还是重写了父类fly
3、如果你写了 @Override注解,编译器就会去检查该方法是否真的重写了父类的方法,如果的确重写了,则编译通过,如果没有构成重写,则编译错误。
其实就是语法校验
4、看看@Override的定义
解读:如果发现 @interface 表示一个 注解类
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}
5、@Target是修饰注解的注解,称为元注解,记住这个概念。
package com.annotation;
import org.w3c.dom.ls.LSOutput;
/**
* @version 1.0
* @anther 田毅
*/
public class Override {
public static void main(String[] args) {
}
}
class Father{
public void fly(){
System.out.println("father fly");
}
}
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 {
}
*/
//5、@Target是修饰注解的注解,称为元注解,记住这个概念。
@java.lang.Override
public void fly(){
System.out.println("Son fly");
}
}
/*
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, MODULE, PARAMETER, TYPE})
public @interface Deprecated {}
*/
package com.annotation;
/**
* @version 1.0
* @anther 田毅
*/
public class Deprecated_ {
public static void main(String[] args) {
A a = new A();
System.out.println(a.hi(););
}
}
@Deprecated
class A {
public int n1 = 10;
@Deprecated
public void hi(){
}
}
all:抑制所有警告
boxing:抑制与封装/拆装作业相关的警告
cast:抑制与强制转型相关的警告
dep-ann:抑制与淘汰注释相关的警告
deprecation:抑制与淘汰相关的警告
fallthrough:抑制与switch陈述式中遗漏break相关的警告
finally:抑制与未传回finally区块相关的警告
hiding:抑制与隐藏变数的区域变数相关的警告
incomplete-switch:抑制与switch陈述式(enum、case)中遗漏项目相关的警告
javadoc:抑制与javadoc相关的警告
nls:抑制与非nls字符串文字相关的警告
null:抑制与空值分析相关的警告
rawtypes:抑制与使用raw类型相关的警告
resource:抑制与使用Closeable类型的资源相关的警告
restriction:抑制与使用不建议或禁止参照相关的警告
serial:抑制与可序列化的类别遗漏serialVersionUID栏位相关的警告
static-access:抑制与静态存取不正确相关的警告
static-method:抑制与可能宣告为static的方法相关的警告
super :抑制与置换方法相关但不含super呼叫的警告
synthetic-access:抑制与内部类别的存取未最佳化相关的警告
sync-override:抑制因为置换同步方法而遗漏同步化的警告
unchecked:抑制与未检查的作业相关的警告
unqualified-field-access:抑制与栏位存取不合格相关的警告
unused:抑制与未用的程序码及停用的程序码相关的警告
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, MODULE, PARAMETER, TYPE})
public @interface Deprecated {
String[] value();
}