-
- 인터페이스는 상속 관계가 아닌, 클래스 간의 유사성을 인코딩하는 데 사용된다.
- 인터페이스를 정의하는 것은 클래스를 정의하는 것과 유사하다. 하지만 키워드 class를 사용하지 않고 interface를 사용한다.
- public interface 인터페이스_이름 {}
- 인터페이스만으로는 객체를 생성할 수 없다. 인터페이스 안에는 구현되지 않은 메소드가 존재하기 때문이다.
- 인터페이스는 다른 클래스에 의하여 구현(implement) 될 수 있다.
- 인터페이스는 다음과 같은 경우에 사용한다.
- 관련 없는 클래스들이 동일한 동작을 구현하기를 원할 때 사용한다.
- 특정한 자료형의 동작을 지정하고 싶지만 누가 구현하든지 신경쓸 필요가 없을 때 사용한다.
- 다중 상속이 필요할 때 사용한다.
- 인터페이스끼리도 상속이 가능하다.
- 인터페이스를 이용한 다중 상속
- 다중 상속(Multiple inheritance)은 하나의 클래스가 여러 개의 부모 클래스를 가지는 것이다.
- 다중 상속은 애매모호한 상황을 만들 수 있기 때문에 자바에서는 금지되어 있다.
- 첫 번째 방법은 여러 개의 인터페이스를 동시에 구현하는 것이다.
- 두 번째 방법은 하나의 클래스를 상속받고 또 하나의 인터페이스를 구현하는 것이다.
- 인터페이스에는 상수를 정의 할 수 있다.
- 인터페이스에서 정의된 변수는 자동적으로 public static final이 되어서 상수가 된다.