Java Interface
- 메소드 시그니처와 상수만 정의
- 설계도(Specification)와 같은 역할
- 다양한 방법으로 구현(implementation) 가능
- 공통의 타입 역할
example
public interface Car {
public int getSpeed();
public boolean accelerate();
}
public class Avante implements Car {
int speed;
@Override
public int getSpeed() {
return speed;
}
@Override
public boolean accelerate() {
speed += 10;
return false;
}
}
public class Matiz implements Car {
int speed;
@Override
public int getSpeed() {
return speed;
}
@Override
public boolean accelerate() {
speed += 20;
return false;
}
}
public class Drive {
public static void main(String[] args) {
Car avante = new Avante();
Car matiz = new Matiz();
drive(avante, "Avante");
drive(matiz, "Matiz");
}
private static void drive(Car car, String name) {
System.out.println(name);
for (int i = 0; i < 10; i++) {
car.accelerate();
System.out.println(i + ":" + car.getSpeed());
}
}
}