一、接口是什么?
接口是抽象的抽象(抽象类是具体的抽象)。
例如制作一款运动手表,接口就是产品需要实现的功能。我这款手表要实现与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(); //接口的回调