| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- 코드 테스트
- 스프링
- SQL
- jpa
- JavaScript
- 코드테스트
- 미니정리
- 디자인 패턴
- 프런트엔드
- 백엔드
- Next.js
- 스프링부트
- 서버
- java
- 자바스크립트
- 쿼리
- oracle
- BACK-END
- 정리
- node.js
- 오라클
- 알고리즘
- spring
- jsp
- 자바
- 프론트엔드
- 데이터베이스
- web
- MySQL
- 프로그래머스
- Today
- Total
참치코더의 꿈 메모장
Java / 추상(abstract) 클래스, 인터페이스 차이 정리 본문
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)

추상 클래스 : 기본 뼈대를 가진 템플릿(동물 -> 강아지, 고양이), 상속을 통한 확장
인터페이스 : 특정 능력 / 기능을 강제하는 규약
** 전략 패턴에서 인터페이스를 만들고 해당 기능을 변형시켜서 알고리즘군을 만든다면, 해당 동작 또는 기능을
추상클래스에서 사용만 하는 전략
'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 |