一.接口概念
普通类:只有具体实现方法
抽象类:具体实现方法+规范(抽象方法)
接口:只有规范
接口可以理解为一种特殊的抽象类,由全局常量和公共的抽象方法所组成。
接口的本质是契约
二.定义接口
使用关键字:interface
[修饰符] [abstract] interface 接口名 [extends父接口1,2....]{
常量 (public static final)
抽象方法(public abstract)
} //[]表示可选
实例
public interface UserService {
//常量默认public static final,可以不用写
int age = 20;
//接口中的所有定义其实都是抽象的 默认public abstract,所以可不用写
public abstract void add(String name);
void delete(String name);
void update(String name);
void query(String name);
}
我们在定义一个接口
public interface TimeService {
void timer();
}
三.使用接口
使用关键字:implements
[修饰符] class 类名 extends 父类 implements 接口1,接口2...{
类体部分//如果继承了抽象类,需要实现继承的抽象方法;要实现接口中的抽象方法
}
Tips:如果有继承,extends必须写在implements前面
实例
public class UserServiceImpl implements UserService,TimeService{
@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 class UserServiceImpl implements UserService,TimeService
这里,在后面我写了两个接口。
在Java中是单继承,不够灵活,这时候我们可以通过接口进行多继承
四.小结
- 接口只有规范,关注的是有没有方法,不关注方法内容
- 常量:public static final
- 方法:public abstract
- 接口不能被实例化,没有构造函数
- implements可以实现多个接口使用,多继承
- 使用接口必须重写接口中的方法