인터페이스 (Interface) 란 인터페이스에는 abstract로 정의된 추상메서드나 일반메서드가 포함된다. 추상클래스처럼 프로퍼티를 통해 상태를 저장할 수 없고 선언만 가능하다. 인터페이스도 마찬가지로 객체를 생성할 수 없고 하위 클래스를 통해 구현 및 생성해야한다. 인터페이스를 사용하는 이유? 추상클래스를 사용할 때의 제한을 생각해보자. 하위클래스는 상속을 하나만 허용한다는 단점이 있다. 또한 상위클래스와 하위클래스의 강한 연관이 생기면서 상위클래스의 영향을 그대로 받게된다. 그래서 상위클래스가 수정되었을 때 하위 클래스를 일일이 확인하기 어려운 경우 부작용이 발생할 수 있는것이다. 인터페이스는 클래스가 아니다. 그래서 상속의 개념이 아닌 구현의 개념이라 구현클래스 (하위클래스)와 강한 연관을 가지..