추상클래스와 인터페이스의 공통점
- 추상클래스와 인터페이스는 모두 일종의 추상화 개념이다.
- 둘 다 실제로 인스턴스를 생성할 수 없다.
- 둘 다 자신의 정의된 메서드를 하위 클래스에서 구현하도록 강제할 수 있다.
추상클래스와 인터페이스의 차이점
1. 정의 방식
- 추상클래스:
abstract
키워드를 사용하여 클래스를 정의한다. - 인터페이스:
interface
키워드를 사용하여 인터페이스를 정의한다.
2. 상속 관계
- 추상클래스: 단일 클래스 상속만 가능하다.
- 인터페이스: 다중 인터페이스 상속이 가능하다.
3. 구현하는 메서드
- 추상클래스: 구현된 메서드와 추상 메서드를 가질 수 있다.
- 인터페이스: 모든 메서드가 추상 메서드이다. 구현된 메서드를 가질 수 없다.
4. 필드 선언
- 추상클래스: 필드를 선언하고 초기값을 할당할 수 있다.
- 인터페이스: 필드를 선언할 수 없다. 정적 상수만 선언이 가능하다.
5. 접근 지정자
- 추상클래스: 모든 접근 지정자를 사용할 수 있다.
- 인터페이스: 메서드와 필드는
public
으로만 접근 지정자를 사용할 수 있다.
6. 목적
- 추상클래스: 클래스들 사이에 공통된 기능을 정의하고자 할 때 사용된다.
- 인터페이스: 클래스들 간의 통신 프로토콜을 정의하고자 할 때 사용된다.
추상클래스와 인터페이스는 공통적인 특징과 목적이 있으나, 사용 목적과 구현 방식에 있어서 차이가 있다. 이에 따라 추상클래스와 인터페이스를 적절하게 선택하여 사용해야 한다.
댓글