接口就是“规范”,定义的是一组规则,实现接口必须要将定义的规则全部实现,即“如果你是…则必须能…”
- 普通类:有方法的具体实现
- 抽象类:可以仅声明方法,也可以实现具体的方法
- 接口:不可以写方法,只能声明
声明类的关键字是class
声明抽象类的关键字是abstract
,子类通过extends
关键字继承
声明接口的关键字是interface
,通过implements
关键字实现接口
举例说明:
//接口中仅声明,利用implements关键字实现方法
public interface UserService {
//接口中所有的属性其实都是常量(public static final)
//int num = 1;//一般不会在接口里定义
//接口中所有定义的方法其实都是抽象的(public abstract)
void add();
void delete();
}
public interface TimeService {
void updateTime();
}
//实现接口时,必须将接口中声明的方法全部实现,否则直接报错
//接口可以实现多继承(如案例中就实现了两个接口),而抽象只能单继承
public class UserServiceImpl implements UserService, TimeService{
@Override
public void add() {
System.out.println("add");
}
@Override
public void delete() {
System.out.println("delete");
}
@Override
public void updateTime() {
System.out.println("updateTime");
}
}
总结:
- 接口本质上就是约束,通过定义一系列的方法,交给不同的人去实现
- 接口中的方法默认都是
public abstract
- 接口中的属性默认都是
public static final
- 接口不能被实例化(接口中没有构造方法)
- 通过
implements
关键字实现多个接口,而且必须重写所有接口中定义的方法