本文最后更新于 105 天前,其中的信息可能已经有所发展或是发生改变。
接口
介绍
- java中的一种引用类型(Interface),仅能包含抽象方法,java1.8之后支持默认方法和静态方法
特点
- 接口中的方法默认被public abstract修饰
- 接口中的属性默认是public static final,即常量
- 一个类可以实现多个接口(implements)
- 实现了接口的类必须实现接口的抽象方法
- 接口支持多继承,一个接口可以继承多个接口
- 没有构造器
示例
public interface MyInterface{
int test(String msg);
default void defaultMethod(){
//....
}
static void staticMethod(){
//....
}
}
接口与类
特性 |
接口 |
类 |
方法 |
方法无实现 |
方法有实现 |
属性 |
由public static final修饰 |
可以是任意访问修饰符 |
构造器 |
无构造器 |
有构造器 |
继承关系 |
implments,支持多继承 |
extends,不支持多继承 |
接口与抽象类
特性 |
接口 |
抽象类 |
方法实现 |
方法无实现 |
方法可以有实现 |
继承关系 |
支持多继承 |
仅支持单继承 |
属性 |
由public static final修饰 |
可以实任意访问修饰符 |
设计目的 |
规范行为 |
提供基础实现 |
接口冲突
- 如果一个类实现了多个接口,这几个接口有相同的方法签名,这种情况叫做接口冲突
- 在方法是抽象方法的情况下,抽象方法没有方法体,只需要实现抽象方法即可
- 在方法是默认方法的情况下,实现类必须重写该方法
- 在方法是抽象方法,且方法签名不同时,这几个抽象方法都需要实现
接口为参数和返回值
参数
- 可以通过不同的实现类,实现不同的方法体
- 可以使用函数式接口和Lambda表达式来简化代码
返回值
- 作为返回值可以通过方法返回具体的实现类