JAVA接口: 接口的实现; 接口是否能实例化? 如果不能直接实例化,该如何做?
时间: 2023-12-02 09:02:55 浏览: 39
Java接口是一种特殊的抽象类,它只定义了一组方法的声明,而没有具体的实现。接口可以看成是一种规范或者约定,它规定了一些方法的名称、参数类型和返回值类型,但是不指定具体的实现方式。接口可以被类实现,一个类可以实现多个接口,从而实现多个规范的约束。
要实现一个接口,需要使用"implements"关键字,类中必须实现接口中声明的所有方法。例如,假设有一个名为"Runnable"的接口,它定义了"run"方法,可以使用如下方式实现该接口:
```
class MyRunnable implements Runnable {
public void run() {
// 实现run方法的具体逻辑
}
}
```
接口本身不能被实例化,因为它只是一组方法的声明,没有具体的实现。但是可以定义一个实现了接口的类的对象,然后使用该对象来调用接口中的方法。例如,假设有一个名为"Runnable"的接口,可以定义一个实现了该接口的类的对象,并调用该对象的run方法:
```
Runnable r = new MyRunnable(); // 定义一个实现了Runnable接口的类的对象
r.run(); // 调用run方法
```
如果想要实现一个接口的对象,可以使用匿名内部类来实现。例如,假设有一个名为"Runnable"的接口,可以使用如下方式创建一个实现该接口的对象:
```
Runnable r = new Runnable() {
public void run() {
// 实现run方法的具体逻辑
}
};
r.run(); // 调用run方法
```
这里使用了一个匿名内部类来实现Runnable接口,并创建了一个实现该接口的对象。因为该对象没有具体的类名,所以称之为匿名对象。