接口
约 307 字大约 1 分钟
2024-08-10
比抽象类还要抽象的纯抽象接口,因为它连字段都不能有。因为接口定义的所有方法默认都是 public abstract 的,所以这两个修饰符不需要写出来(写不写效果都一样)
当一个具体的类去实现一个接口时,需要使用 implements 关键字
interface Person {
public abstract void say();
}
class Student implements Person {
@Override
public void say() {
System.out.println("我是人类");
}
}比较
| abstract class | interface | |
|---|---|---|
| 继承 | 只能 extends 一个 class | 可以 implements 多个 interface |
| 字段 | 可以定义实例字段 | 不能定义实例字段 |
| 抽象方法 | 可以定义抽象方法 | 可以定义抽象方法 |
| 非抽象方法 | 可以定义非抽象方法 | 可以定义default方法 |
接口继承
一个接口可以继承另外一个接口。接口之间的继承使用 extends,它相当于扩展了接口的方法
interface Hello {
public abstract void sayHello();
}
interface Person {
public abstract void say();
}default方法
在接口中,可以定义 default 方法,默认实现,子类实现接口不用覆写 default 方法
interface Person {
public abstract void say();
default void sayHello() {
System.out.println("say hello");
}
}
class Student implements Person {
@Override
public void say() {
System.out.println("我是人类");
}
}