先介绍一下普通类、抽象类以及接口三者的区别:
普通类:只有具体实现
抽象类:具体实现和规范都有
接口:只有规范,自己无法写方法。接口是专业的约束,实现了约束和实现的分离。
接口定义的关键字是interface。**接口中的所有定义其实都是抽象的public abstract。**如果要在接口中定义方法,直接:
返回值类型+方法名即可
接口都需要有实现类。
我们先定义User接口如下,具有增删改查功能;
public interface User {
void add(String name);
void delete(String name);
void change(String name);
void search(String name);
}
然后再定义UserImpl类,来实现User接口。实现了接口的类,就需要重写接口的方法。
public class UserImpl implements User{
@Override
public void add(String name) {
}
@Override
public void delete(String name) {
}
@Override
public void change(String name) {
}
@Override
public void search(String name) {
}
}
一个类可以实现多个接口。我们再定义Timer接口如下:
public interface Timer {
void time();
}
可以使一个类继承多个接口,如下:
public class UserImpl implements User,Timer{
@Override
public void time() {
}
@Override
public void add(String name) {
}
@Override
public void delete(String name) {
}
@Override
public void change(String name) {
}
@Override
public void search(String name) {
}
}
由此可见,虽然类与类之间只能是单继承,但是我们可以利用接口来实现多继承。
接口:
- 提供约束
- 定义一些方法,让不同的人去实现
- 方法都是public abstract
- 常量都是public static final
- 接口没有构造方法
- implements可以实现多个接口,
- 必须要重写接口中的方法