接口
- 普通类:只有具体实现
- 抽象类:具体实现和规范(抽象方法)都有
- 接口:只有规范,自己无法写方法,是专业的约束;约束和实现分离:面向接口编程
- 接口就是规范,定义的是一组规则,体现了现实世界中“如果你是…则必须能…”的思想。
- 接口的本质是契约,就像我们人间的法律一样。制定好后大家都遵守。
- OO的精髓,是对对象的抽象,最能体现这一点的就是接口。
- 声明类的关键字是class,声明接口的关键字是interface
- 子类实现接口,必须重写其中的方法
- 只有一个方法的接口叫做函数式接口,可以使用ambda表达式简化
作用
- 约束
- 定义一些方法,让不同的人实现
- 接口中方法定义:public abstract —>可以省略
- 接口中常量定义:public static final —>可以省略
- 接口不能被实例化,接口中没有构造方法
- 使用implements可以实现多个接口
- 实现接口必须要重写接口中的方法
参考代码
//interface 定义的关键字
public interface Demo13User {
//接口中所有定义的方法其实都是抽象的 public abstract,所以 public abstract可以省略不写
void add(String name);
void delete(String name);
void update(String name);
void query(String name);
//接口中定义的属性都是常量且由final修饰,一般不在接口中定义常量
int AGE = 98;
}
/*
//类 可以实现接口使用 implements
//实现了接口的类,就需要重写接口中的方法
//Java是单继承 但利用接口可以多继承
public class Demo13UserImpl implements Demo13User, Demo13Time {
@Override
public void add(String name) {
}
@Override
public void delete(String name) {
}
@Override
public void update(String name) {
}
@Override
public void query(String name) {
}
@Override
public void timer() {
}
}
*/
/*
public interface Demo13Time {
void timer();
}
*/