注解1
    注解的概念
    jdk自带的注解
    声明与使用注解的基本语法
    
    注解的概念
        在javaEE与开源框架中广泛使用,泛型在集合框架中广泛使用
        注解是java5提供的最重要的语言特征之一。
        注解的好处是,实现替代配置文件的功能(经典的方式是使用xml,但太烦琐)

    声明与使用
        @interface,可以用在方法,字段,类上


注解2
    声明注解的语法
    
    声明
        public @interface Anno {
        int big();
        int small();
        }
    使用
        @Anno(big=1,small=0)
    声明注意点
        注解不能继承
        方法不能有参数,也不能有异常
    属性的默认值

 

package java20180208_2;

@SuppressWarnings("all")
@Anno(big=1,small=0)
class Parent {
    private int num;
    public void m1() {
    }
}
@Deprecated
class Son extends Parent {
    @Override
    public void m1() {
    }
    @Deprecated
    void m2(){
        System.out.println("son's");
    }
}

@FunctionalInterface
//多一个不行,少一个也不行,函数式接口只有一个方法
interface Interface2{
//    void m();
    void m2();
}

public class JdkAno {

    public static void main(String[] args) {
        Son son=new Son();
        son.m2();
    }
}


注解3
    注解使用
    标记注解
    
    各种不同类型的元素赋值
    简写

package java20180208_2;

public @interface Anno {
//注解的数据类型可以有多种,并且可以添加一些默认值
    int big();
    int small();
//    String name() default "";
    Class c1() default String.class;
    int[] nums() default {1,2,3};
}