용어/java

[국비][JAVA] 인터페이스와 추상(abstract) 차이

줌인. 2024. 6. 2. 00:32
구분 추상 클래스 (Abstract Class) 추상 메서드 (Abstract Method)
인터페이스 (Interface)
정의 추상 메서드를 하나 이상 포함하거나
abstract로 선언된 클래스
구현부 없이 선언만 있는 메서드
추상 메서드와 상수만으로
구성된 형태
목적 관련 있는 클래스들의 공통적인 특징을
추출하고 상속을 통해 재사용성 증가
하위 클래스에서 반드시 구현해야 할
메서드 명세 정의
관련 없는 클래스들이 특정
기능을 공유하도록 함
관계 IS-A 관계 (상속 관계) IS-A 관계 (상속 관계)
HAS-A 관계 (구현 관계)
구현 추상 메서드는 하위 클래스에서 반드시 구현해야 함 하위 클래스에서 반드시 구현해야 함
인터페이스를 구현하는 클래스에서 추상 메서드 구현해야 함
메서드 종류 - 추상 메서드
- 일반 메서드
- 생성자
추상 메서드
추상 메서드
(Java 8 이후 default, static 메서드 가능)
멤버
변수
- 일반 변수
- 상수
없음
상수 (public static final)
상속/
구현
단일 상속만 가능 해당 없음 다중 구현 가능
활용
예시
- 동물 (추상 클래스), 움직이다 (추상 메서드)
- 개, 고양이 (하위 클래스)
동물 클래스의 움직이다 (추상 메서드)
Comparable, Runnable
(인터페이스)
장점 - 공통 기능을 추상 클래스에서
  구현하여 코드 중복 방지
- 하위 클래스 간의 일관성 유지
하위 클래스에서 반드시 구현하도록
강제하여 설계 유연성 확보
- 다중 상속의 단점 보완
- 유연하고 확장 가능한 설계
단점 단일 상속 제한 추상 클래스를 통해서만 사용 가능
모든 메서드를 추상 메서드로
선언해야 함 (Java 8 이전)

 

728x90