一、接口是什么?

        接口是抽象的抽象(抽象类是具体的抽象)。

        例如制作一款运动手表,接口就是产品需要实现的功能。我这款手表要实现与APP的结合,要实现来电的提醒,要实现闹铃的设置,要实现心率的实时监控,要实现步数的记录......  我不会告诉你任何具体的实现方法,我只会给你一个产品功能的框架,而如果你是我团队的一员,要来制作这款运动手表,那么你就一定要把我定义的内容全部实现。

       即“如果你是......, ,就必须......”

        这就是接口,在程序中,它就相当于是一个类的行为规范。 

二、接口的作用?

     1. 有利于代码的规范

      2. 有利于代码进行维护

      3.  有利于代码的安全和严密

      4. 丰富了继承的方式

三 、接口的相关语法

      接口声明

                关键字:interface       public interface  接口名 {}

      接口体

                1. 常量(没有变量)  ( public static final ) int MAX = 100;     可以省略public static final

                2. 抽象方法                 (public abstract) void add();                 可以省略public abstract

                常量和抽象方法都只有一种访问修饰符:public

                接口默认提供  public,static,final,abstract 关键字

      接口的实现

           关键字:implements

            1. 类可以实现一个或多个接口     public class Dog implements Eatable,Sleepable

                Dog 也可以继承一个具体类    public   class  Dog   extends   Animal  implements   Eatable , Sleepable

             2. 类中必须重写接口中的全部方法( 抽象类   可只重写接口中的部分方法)

             3. 类中重写的方法,访问修饰符必须是  public

             4. 接口中定义的常量,在继承了接口的类中可以直接使用。             

      接口间的继承 

public interface A{}
             public interface B extends A{}      // 接口B继承的A
 
 
 
public interface Eatable{ //定义了一个Eatable接口
   void eat();
}
public interface Sleepable{ //定义了一个Sleepable接口
   void sleep();
}
public class Animal{ // 定义了一个Animal类
 public String name;
 public Animal(String name) {
  this.name = name;
 }
}
public Dog extends Animal implements Eatable,Sleepable{ //继承了Animal类,Eatable接口 ,Sleepable方法
 public Dog(String n) {
  this(n);
}
public void eat() { //重写Eatable中的eat方法
  System.out.println(name+"吃骨头");
}
public void sleep() { //重写Sleepable中的sleep方法
  System.out.println(name+"睡得很好");
}
}
四、接口的回调(类似于 对象的上转型对象 )是什么?    
       接口名 接口的对象  =  实现了接口的类的对象
       该 接口对象 可以调用 被类实现了的 接口方法
public interface Com{}
public class Object implements Com{}
Com com = new Object(); //接口的回调