接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为
接口如何使用?
/*
- 汽车和发动机之间的接口
- 生产汽车的厂家面向接口生产
- 生产发动机的厂家面向接口生产
*/
interface Engine {//Engine 接口
// 所以发动机都可以启动
void start();
}
class Car {//Car 类
Engine e;
Car(Engine e) {
this.e = e;
}
public void testEngine() {//testEngine方法去调用start方法
e.start();
}
}
class YAMAHA implements Engine {//YAMAHA 类去实现Engine 接口
public void start() {
System.out.println("YAMAHA启动");
}
}
class HONDA implements Engine {//HONDA 去实现Engine 接口
public void start() {
System.out.println("HONDA启动");
}
}
public class Test {//测试类
public static void main(String[] args) {
//生产引擎
YAMAHA yamaha=new YAMAHA();
//生产汽车
Car car=new Car(yamaha);
//测试引擎
car.testEngine();
//换HONDA
car.e=new HONDA();
car.testEngine();
}
}
输出结果:
YAMAHA启动
HONDA启动