추상 클래스
추상 메소드를 한 개 이상 포함하고 있는 클래스
- 추상 메소드 :
abstract
키워드와 함께 선언되고 코드는 작성되지 않은 메소드
- 추상 메소드가 포함되어 있지 않아도
abstract
로 선언한 클래스는 추상 클래스가 된다.
- 추상 클래스는 인스턴스를 생성할 수 없다.
- 서브 클래스에서 상속 받아서 모든 추상 메소드를 구현해야 인스턴스를 생성할 수 있다.
인터페이스
추상 메소드의 집합
- 구현된 것이 전혀 없는 설계도와 같은 역할을 한다.
- 인터페이스는 인스턴스를 생성할 수 없다.
- public 멤버만 가질 수 있고 상수 및 추상 메소드만 정의할 수 있다.
- 상수는
public static final
로 속성이 정해져 있고 추상 메소드는 public abstract
속성이 정해져 있으며 두 속성 모두 생략이 가능하다.
장점
- 코드의 변경을 최소화할 수 있다. (인터페이스에 의존하도록 설계하면)
- 설계와 구현을 분리할 수 있다.
- 서로 연관없는 객체끼리 관계를 맺을 수 있다.