인터페이스는 일종의 추상클래스로 추상메소드, 상수만 포함 가능
💡 자바 8 부터 default 메소드, static 메소드를 인터페이스의 멤버로 사용가능
추상 클래스처럼 new 를 이용한 객체생성을 할 수 없다.
인터페이스의 선언과 상속
interface InterfaceName {
}
class ClassName implements InterfaceName{
}
그렇다면 추상 클래스를 사용하지 않고 인터페이스를 쓰는 이유가 무엇일까?
인터페이스는 추상 클래스 보다 더 추상적인 개념이다.
추상 클래스는 구현 메서드도 포함을 할 수 있어 확장의 개념이라면
인터페이스는 구현 코드가 없어 기능 구현을 강제한다.
추상 클래스는 다중상속을 지원하지 않지만 인터페이스는 다중상속이 가능하다.