자바에서 클래스들이 반드시 구현해야 하는 메소드의 집합을 정의하는 일종의 청사진(설계도).
인터페이스를 사용하면 여러 클래스가 같은 방식으로 동작하도록 할 수 있다.
public interface Vehicle {
void start();
void stop();
void accelerate();
}
ElectricCar, Motorcycle 클래스가 이 인터페이스를 구현
각 클래스는 start, stop, accelerate 메소드를 구현하여 각각의 동작을 출력
public class ElectricCar implements Vehicle {
@Override
public void start() {
System.out.println("Electric Car is starting...");
}
@Override
public void stop() {
System.out.println("Electric Car is stopping...");
}
@Override
public void accelerate() {
System.out.println("Electric Car is accelerating...");
}
}
public class Motorcycle implements Vehicle {
@Override
public void start() {
System.out.println("Motorcycle is starting...");
}
@Override
public void stop() {
System.out.println("Motorcycle is stopping...");
}
@Override
public void accelerate() {
System.out.println("Motorcycle is accelerating...");
}
}
VehicleTest 클래스의 main 메소드에서 다양한 차량 객체를 생성하고 인터페이스 타입으로 참조하여 메소드를 호출
public class VehicleTest {
public static void main(String[] args) {
Vehicle myElectricCar = new ElectricCar();
Vehicle myMotorcycle = new Motorcycle();
myElectricCar.start();
myElectricCar.accelerate();
myElectricCar.stop();
myMotorcycle.start();
myMotorcycle.accelerate();
myMotorcycle.stop();
}
}