Java中的接口(Interface)是一种抽象类型,它定义了一组方法的声明,但不包含这些方法的实现。接口的主要作用是规范类的行为,允许不同的类实现相同的方法,从而实现多态性。接口中的方法默认是`public abstract`的,但也可以省略`public`和`abstract`关键字。接口中的变量默认是`public static final`的,并且必须显式初始化。
接口的特点包括:
1. 接口不能被实例化,即不能使用`new`关键字创建接口的实例。
2. 一个类可以实现多个接口,从而间接实现多继承的效果。
3. 接口中的方法默认是`public abstract`的,但也可以省略`public`和`abstract`关键字。
4. 接口中的变量默认是`public static final`的,并且必须显式初始化。
5. 接口中的方法不能有方法体,即不能包含实现代码。
6. 接口支持默认方法和静态方法,Java 8中引入了这些概念。
接口的使用示例:
// 定义接口
public interface Action {
void fly();
void swim();
}
// 实现接口的类
public class Bird implements Action {
@Override
public void fly() {
System.out.println("The bird is flying.");
}
@Override
public void swim() {
System.out.println("The bird is swimming.");
}
}
// 使用接口
public class Main {
public static void main(String[] args) {
// 创建接口类型的引用变量,指向实现类的实例
Action action = new Bird();
// 调用接口中定义的方法
action.fly();
action.swim();
}
}
以上代码展示了如何定义一个接口`Action`,一个实现该接口的类`Bird`,以及如何在`Main`类中使用接口类型的引用变量指向`Bird`类的实例,并调用接口中定义的方法。