인터페이스 (Interface) 의미
자바에서는 메소드 출처의 모호성 등 문제로 인해서 클래스를 통한 다중 상속은 지원하지 않는다. 하지만 다중 상속의 이점을 버릴 수는 없기에 인터페이스라는 것을 통해 다중 상속을 지원하고 있다. 큰 틀에서 보면 추상 클래스와 의미는 유사하다.
인터페이스 (Interface) 예제 및 설명
interface Animal {
public abstract void cry();
}
class Dog implements Animal {
public void cry() {
System.out.println("야옹 야옹");
}
}
위에 코드를 보면 인터페이스에서 메소드를 선언하고, 클래스에서 구현하기 위해서 정의해주는 것을 볼 수 있다. 인터페이스를 사용할 때 유의해야 할 점이 있는데 클래스와는 달리 인터페이스의 모든 필드는 public static final이어야 하며, 모든 메소드는 public abstract이어야 한다. 또한 구현할 때 implements를 앞에 붙인다는 걸 알 수 있다.
모든 인터페이스에 공통으로 적용되는 부분이므로 제어자는 생략할 수 있다.