接口Interface
    接口(Interface)在Java中也是一种抽象类型,接口中的内容是抽象形成的需要实现的功能,更像是一种规范.
    void 变量名(//参数);
    1.通过interface关键字定义接口
    2.实现类与接口建立实现关系 通过implemens来建立实现类,接口是父级,接口实现类是子级
    3.接口不可以被实例化(抽象)
    4.接口中的方法都是抽象方法 即(不可以定义普通方法 没有构造方法)
    5.接口是对外暴露的规则,是一套开发规范 无法自己写方法
    6.接口中都是静态常量,没有成员变量 静态static常量final 默认拼接(public static int age = 20;)
    7.实现类与接口建立实现关系以后
    6.1可以选择不实现接口中的抽象方法,把自己变成一个抽象类(abstract)
    6.2实现接口中的所有抽象方法,把自己变成一个普通子类(重写接口中的方法)
    8.Inter接口的实现类 类名+Impl(命名规范)
    9.Java是但继承,但可以通过接口(Interface)来实现多继承
    10. 接口提高了程序的功能拓展,降低了耦合性

    接口: 1.接口Inter 2.实现类InterImpl 3.测试类TestInterImpl
    image.png
    类与类的关系
    继承关系,只支持单继承
    比如A是父类,B是子类,B具备A的所有功能
    如果A对B的功能不满意,可以重写(两同 两小 一大)
    类与接口的关系
    实现关系,可以单实现,也可以多实现
    class A implements B,C{}
    A是实现类,B和C是接口,A需要实现B和C的所有抽象方法,否则A就是一个抽象类
    接口与抽象类的比较
    1.接口是一种用interface定义的类型
    抽象类是一种用class定义的类型
    2.接口中的方法都是抽象方法
    抽象类中的方法不做限制
    3.接口中的都是静态常量
    抽象类中可以写普通的成员变量
    4.接口中没有构造方法,不可以实例化
    抽象类中有构造方法,也不可以实例化
    5.接口是先天设计的结果
    抽象类是后天重构的结果
    6.接口可以多继承
    抽象类只能单继承
    内部类Inner
    根据内部类位置的不同
    分为成员内部类(类里方法外),局部内部类(方法里)
    格式: 外部类名.内部类名 对象名 = 外部类对象.内部类对象;
    Outer.Inner oi = new Outer().new Inner();
    特点:
    1.内部类可以直接访问外部类中的成员,包括私有成员
    2.外部类要访问内部类的成员,必须要建立内部类的对象
    3.在成员位置的内部类是成员内部类
    在局部位置的内部类是局部内部类
    4.如果内部类被private修饰,无法直接在外界创建内部对象,可以创建内部类的对象来间接访问内部类
    5.如果内部类被static修饰,可以把这个类成为静态内部类
    静态内部类不需要先创建外部类对象,而是先通过外部类的类名找到内部类,在创建内部类对象
    6.如果静态内部类中有静态资源,可以不创建一个对象,就通过
    外部类名.内部类名.静态资源名的链式加载方式,使用这个资源
    7.直接创建外部类对象,调用局部内部类所处的方法时,并不会触发局部内部类的功能
    需要在局部内部类所处的方法中,先创建局部内部类对象,并调用其功能
    8.匿名内部类没有名字 通常与匿名对象结合在一起使用
    9.匿名对象只能使用一次,一次只能调用一个功能
    匿名内部类其实就是充当了实现类的角色,去实现未实现的方法,只是没有名字而已
    如果想要多次使用实现后的功能,还要创建之前的普通对象