接口
一、引入举例
 生活中的接口: usb接口:1994年,由微软、IBM、因特尔共同指定的一种数据传输标准协议。

Java接口概念:特殊的抽象类,规定了接口的使用者和接口实现者之间的规范。

二、Java设置接口原因
  为了解决多继承问题

三、语法

interface 接口名{}

四、特征

  特点
1、接口中的属性都是公开静态常量,都是用public static final 修饰的
    2、接口中的方法都是公开抽象方法,都是用public abstract修饰的。接口中的方法默认是抽象方法,无成员方法,但存在静态方法,这是jdk8新特性。

    3、接口中没有构造方法,也没有对象,也无法手动去new实例化创建对象

  注意事项
(1)接口中属性如果没有加修饰符,默认是公开静态常量
    (2)接口中方法如果没有加修饰符,默认是公开抽象方法

五、要点

  1、接口的实现类(类似于抽象类的子类)
    概念
      实现了接口的类叫做接口的实现类

    语法

public class 实现类类名 implements 接口名 {}

    特点
如果⼀个类实现了⼀个接⼝,如果这个类不想成为抽象类,那么这个类必须实现接⼝中所有抽象⽅法

  2、接口与类之间的关系
    (1)类与类
        单继承关系,可以多级继承

    (2)接口与接口
        多继承关系,一个接口可以有多个直接父接口

    (3)接口与类
        接口和类之间是多实现的关系 ,一个类可以实现多个接口。

    注意:

(1)一个类比较复杂的继承和实现关系:先继承父类 后实现接口。

      (2)接口引用 指向 实现类对象,符合多态的特点 编译时 和运行时。

      (3)实现类在继承父类中的方法的同时,有可能将接口中的方法进行实现
六、应用
1、扩展子类的功能
2、解耦合
    耦合:表示两个的关系的亲密度
    耦合分类:强耦合(关系紧密)、弱耦合(关系疏远)
    概念:
实现相似功能但每次需要调用不同的私有属性的,现在用接口实现
      原来的方案,实现不同的功能,除了调整功能方法还需要修改私有属性值,较为繁琐。功能需要的对象的类型发生变化,私有属性也需跟着变,耦合性高,拓展性差,不利于功能开发。