추상클래스
- 일부 메서드가 구현할 수 있고, 일부는 추상 메서드로 선언할 수 있는 클래스
- 추상 메서드는 선언만 하고, 실제 구현은 하위 클래스에서 한다.
- 추상클래스는 객체를 직접 생성할 수 없으며, 상속을 통해 확장해 사용
- 추상클래스는 공통된 속성과 메서드를 묶는데 사용
- 다중 상속 불가능
인터페이스
- 추상 메서드만 가지는 클래스
- 실제 구현은 인터페이스를 구현하는 클래스에서 한다.
- 한 클래스가 여러 인터페이스를 구현 가능
- 다른 클래스들 사이에 공통적인 동작을 보장하기 위해 사용
추상클래스를 사용할지 인터페이스를 사용할지 어떻게 정하나요?
사용용도에 따라 나눈다.
- 추상클래스: 상속 관계를 타고 올라갔을 때, 같은 조상클래스를 상속하는데 기능까지 완벽히 똑같은 기능이 필요한 경우
- 인터페이스: 상속 관계를 타고 올라갔을 때, 다른 조상클래스를 상속하는데 같은 기능이 필요한 경우