스타크래프트 예제로 알아보는 Java 추상(abstract) 클래스와 인터페이스(interface)의 개념
추상클래스는 주로 다형성의 개념을 살리기 위해서 사용된다. 실제로 개발을 하면서 추상클래스나 인터페이스를 사용하면서 개발을 해 본 경험은없다. 추상클래스나 인터페이스를 개발에 사용하려면 설계에 많은 시간을 투자해야 된다고 한다. 이말은 추상클래스나 인터페이스를 굳이 사용하지 않아도 된다는 말이다. 하지만 그래도 궁금해서 공부하는 차원에서 알아보았다. 스타크래프트의 모든 개체들은 유닛(Unit)이라는 개념을 가진다. 공통적으로 스타크래프트의 유닛들은 이동, 취소(나 홀드), 공격(라바 등 제외)의 동작들을 할 수 있다. 따라서 추상클래스는 말 그대로 공통적인 부분을 최대한 뽑아서 상위개념으로 만들어 주는 역할을 한다. 그리고 인터페이스는 각각의 클래스들의 성질을 나누는 역할을 한다. Mechanic이라는 인터페이스를 implements 한 클래스들은 scv가 수리를 할 수 있도록 하는 성질을 가지게 한다. public class InterfaceEX { public static void main(String[] args) { SeizeTank tank = new SeizeTank(); ScienceVessle vessle = new ScienceVessle(); NoSteamMarine marine = new NoSteamMarine(); print(tank); print(vessle); print(marine); ScienceVessle v1 = new ScienceVessle(); ScienceVessle v2 = new ScienceVessle(); ScienceVessle v3 = new ScienceVessle(); NoSteamMarine m1 = new NoSteamMarine(); NoSteamMarine m2 = new NoSteamMarine(); SeizeTank t1 = new SeizeTank(); SeizeTank t2 = new ...