추상 클래스와 인터페이스
JAVA
·
추상 클래스란?
- 완전하게 구현되지 않은 메서드를 가진 클래스
- 구현 메서드도 가질 수 있음
- 객체 생성 불가
- 주로 상속 계층의 추상적인 개념을 나타내기 위한 용도로 사용
- 서브 클래스는 반드시 추상 메서드를 재정의해야 함
인터페이스란?
- 추상 클래스의 극단적인 경우
- 추상 메서드와 상수로만 이루어짐
- 모든 메서드를 추상 메서드로 간주하기에
abstract 예약어 생략 가능
- 자바 8부터는 기본 메서드 정의 가능
- 추상 메서드는 특정 인터페이스를 따르는
클래스들을 위한 요구 조건의 역할
- 자바에서의 인터페이스는 객체와 객체 사이의
상호 작용이 이루어지는 인터페이스를 의미
- 객체 생성 불가
- 인터페이스에 서브 클래스를 주입한다면
인터페이스에 정의된 메서드만 호출 가능
- 인터페이스가 디자인되면, 클래스들간의 통합에 대하여
걱정할 필요없이 각 클래스들은 별도의 팀에 의해
병렬적으로 작성 가능
- 클래스들은 다른 클래스의 메서드명만 알면 호출 가능
- 하나의 클래스는 하나 이상의 인터페이스 구현 가능
- 인터페이스는 일반적인 인스턴스 변수와 메서드를
갖지 않아 다중 상속 가능
추상 클래스와 인터페이스 차이
- 추상 클래스는 일반적인 필드나 메서드를 가질 수 있음
- 고로 추상 클래스는 다중 상속 불가
출처
Power JAVA 2판