참치코더의 꿈 메모장

Java / 추상(abstract) 클래스, 인터페이스 차이 정리 본문

JAVA

Java / 추상(abstract) 클래스, 인터페이스 차이 정리

참치깡 2025. 8. 23. 20:04
728x90

1. 공통점

 

- 객체 생성 불가(new로 인스턴스화 불가)

- 다형성 지원 ->  하위 클래스나 구현체를 통해 실제 동작을 정의

-  추상 메서드를 정의해서 자식 클래스/구현체가 반드시 구현하도록 강제 가능

 

2. 차이점

 

추상 클래스 (abstract class)

 

- 목적 : is-a 관계, 상속을 통한 확장 

- 상속/구현 : 단일 상속만 가능 (extends)

 

- 구성 요소 

 

(1) 추상 메서드

(2) 일반 메서드(구현 O)

(3) 멤버 변수(상태 보유 가능)

(4) 생성자 가짐

 

- 필드 : 인스턴스 변수 가질 수 있음

- 생성자 : 가질 수 있음 (직접 객체 생성은 못하지만 자식 객체 생성 시 호출됨)

- 다중 상속  : 불가 (하나의 클래스만 extends)

 

인터페이스 (interface)

 

- 목적 : can-do 관계,  구현을 통한 기능 제공

- 상속/구현 : 다중 구현 가능 (implements)

 

- 구성 요소 

 

(1) 기본은 추상 메서드

(2) default 메서드 (구현 제공 가능)

(3) static 메서드

(4) 상수(public static final)만 가능

 

- 필드 : 상수(static final)만 가능

- 생성자 : 없음

- 다중 상속  : 가능(여러 인터페이스 implements)

 

전체 코드 부분

 

추상 클래스  : 기본 뼈대를 가진 템플릿(동물 -> 강아지, 고양이), 상속을 통한 확장

인터페이스 : 특정 능력 / 기능을 강제하는 규약

 

** 전략 패턴에서 인터페이스를 만들고 해당 기능을 변형시켜서 알고리즘군을 만든다면, 해당 동작 또는 기능을

    추상클래스에서 사용만 하는 전략

 

728x90

'JAVA' 카테고리의 다른 글

열거형 - Enum Type 미니정리  (0) 2025.08.23
Java / System 클래스 미니 정리  (0) 2025.08.12
Java / Class 클래스 미니 정리  (1) 2025.08.11
Java 스레드(Thread) 생성 방법  (0) 2025.05.06
Java 자주 쓰는 Math 메서드 종류  (2) 2025.05.04
Comments