본문 바로가기

JAVA/추상화(Abstraction)

abstract 제어자

자바에서 abstract 키워드는 "미완성"을 나타내는 제어자임

이 키워드는 추상 클래스와 추상 메서드를 정의할 때 사용한다

 

1. abstract 키워드

  1. abstract method : 메서드 시그니처만 존재하고, 본문(메서드 바디)이 없는 메서드
  2. abstract class : 하나 이상의 추상 메서드를 포함하거나 객체 생성을 제한하기 위해 선언된 클래스
abstract class AbstractExample {
	abstract void hello(); // 추상 메서드
}

 

 

2. abstract의 특징

  1. abstract 메서드
    • 메서드의 본문이 없는 미완성 메서드이다
    • 구현이 없기 때문에 하위 클래스에서 반드시 오버라이딩(Override) 해야한다
  2. abstract 클래스
    • 추상 메서드를 포함하거나, 직접 객체 생성을 막기 위해 사용한다
    • 불완전한 설계도의 역할을 하며, 이를 상속받는 하위 클래스가 구체적인 구현을 담당한다

 

 

3. 예

abstract class AbstractExample {
	abstract void start();
}

// 컴파일 에러 발생, 추상 클래스는 인스턴스화가 불가함
AbstractExample example = new AbstractExample();

 

  • 추상 클래스는 메서드가 완성되지 않았기 때문에 직접 인스턴스를 생성할 수 없다
  • 하위 클래스에서 구체적인 동작을 정의해줘야만 사용할 수 있다

정리

  1. abstract는 미완성의 의미로, 구체적인 구현 없이 설계만 정의할 때 사용한다
  2. 추상 메서드는 메서드 바디 없이 선언만 되어있으며, 반드시 하위 클래스에서 구현해줘야만 한다
  3. 추상 클래스는 불완전한 설계도로서 객체 설계가 불가능하며, 상속을 통해 완성된다
  4. 공통적인 설계는 추상 클래스로 정의하고, 실제 동작은 하위 클래스에 위임함으로 유연하고 확장성있는 구조를 만들 수 있다

'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