추상클래스란? (Abstract Class)
- 앞서 정리해둔 포스팅
- 여기서 보세요!
- 하나 이상의 추상 메서드 (Abstract Method)를 가지는 클래스
- 추상 메서드를 선언하여 상속을 통해 하위 클래스에서 반드시 구현하도록 강제하는 클래스
- 상속을 위한 크래스
- 선언부만 작성, 구현부가 없음, 상속받는 자식 클래스에서 구현을 함 (오버라이딩).
- static, final이 아닌 필드를 가질수 있고, public, protected, private 접근 제어자를 모두 사용가능.
인터페이스 (Interface)
- 추상클래스 보다 추상화의 정도가 높음
- 구현부가 있는 일반메서드를 가질 수 없다.
- 모든 메서드는 'public abstract'로 선언, 모든 멤버 변수는'public static final'로 선언.
- 추상클래스와 다르게 다중 상속이 가능함.
- 인터페이스는 인터페이스로부터만 상속 받을 수 있음
- 인터페이스는 '~을 할 수 있는'
공통점
- 가지고 있는 추상 메서드를 상속받는 자식들이 구현하도록 강제함
- 인스턴스화 불가능
차이점
- 인터페이스 모든 변수 'public static final'
- 추상 클래스 'static', 'final'이 아닌 필드 가질 수 있고, public, protected, private 모두 가질 수 있음.
- 인터페이스는 다중 상속 가능.