자바에서 abstract 키워드는 "미완성"을 나타내는 제어자임
이 키워드는 추상 클래스와 추상 메서드를 정의할 때 사용한다
1. abstract 키워드
- abstract method : 메서드 시그니처만 존재하고, 본문(메서드 바디)이 없는 메서드
- abstract class : 하나 이상의 추상 메서드를 포함하거나 객체 생성을 제한하기 위해 선언된 클래스
abstract class AbstractExample {
abstract void hello(); // 추상 메서드
}
2. abstract의 특징
- abstract 메서드
- 메서드의 본문이 없는 미완성 메서드이다
- 구현이 없기 때문에 하위 클래스에서 반드시 오버라이딩(Override) 해야한다
- abstract 클래스
- 추상 메서드를 포함하거나, 직접 객체 생성을 막기 위해 사용한다
- 불완전한 설계도의 역할을 하며, 이를 상속받는 하위 클래스가 구체적인 구현을 담당한다
3. 예
abstract class AbstractExample {
abstract void start();
}
// 컴파일 에러 발생, 추상 클래스는 인스턴스화가 불가함
AbstractExample example = new AbstractExample();
- 추상 클래스는 메서드가 완성되지 않았기 때문에 직접 인스턴스를 생성할 수 없다
- 하위 클래스에서 구체적인 동작을 정의해줘야만 사용할 수 있다
정리
- abstract는 미완성의 의미로, 구체적인 구현 없이 설계만 정의할 때 사용한다
- 추상 메서드는 메서드 바디 없이 선언만 되어있으며, 반드시 하위 클래스에서 구현해줘야만 한다
- 추상 클래스는 불완전한 설계도로서 객체 설계가 불가능하며, 상속을 통해 완성된다
- 공통적인 설계는 추상 클래스로 정의하고, 실제 동작은 하위 클래스에 위임함으로 유연하고 확장성있는 구조를 만들 수 있다
'JAVA > 추상화(Abstraction)' 카테고리의 다른 글
| 추상 클래스와 인터페이스, 선택 기준과 활용 전략에 대해 (0) | 2026.04.21 |
|---|---|
| 인터페이스(interface) (0) | 2026.04.21 |
| final 키워드 (0) | 2026.04.21 |
| 추상 클래스 (0) | 2026.04.20 |
| 추상화(Abstraction) (0) | 2026.04.20 |