본문 바로가기
  • Let's study
알고리즘/Java

[Java] 추상 클래스 / 추상 메서드

by 코딩고수이고파 2026. 7. 15.

추상 메서드(Abstract Method)

추상 메서드(Abstract Method)는 구현(몸체)이 없는 메서드이다.

자식 클래스에서 반드시 구현하도록 오버라이딩을 강제하기 위해 사용한다.

 

abstract void 공격();
 

메서드의 선언만 있고 { }가 없으며, abstract 키워드를 사용한다.

추상 클래스(Abstract Class)

추상 메서드를 하나라도 가지고 있는 클래스는 반드시 추상 클래스(Abstract Class) 가 되어야 한다.

 

abstract class 무기 {
    abstract void 공격();
    
    void 방어(){
    }
}
 

추상 클래스는 객체를 생성할 수 없다.

 

무기 weapon = new 무기(); // 컴파일 오류
 

추상 클래스는 객체를 만들기 위한 클래스가 아니라, 자식 클래스들의 공통 규격(설계도) 을 제공하는 역할을 한다.

오버라이딩 강제

추상 클래스를 상속받은 자식 클래스는 모든 추상 메서드를 반드시 구현해야 한다.

 

class 칼 extends 무기 {
    @Override
    void 공격() {
        System.out.println("칼로 공격합니다.");
    }
}

class 활 extends 무기 {
    @Override
    void 공격() {
        System.out.println("활로 공격합니다.");
    }
}
 

구현하지 않으면 컴파일 오류가 발생한다.

즉, 추상 메서드는 자식 클래스가 반드시 구현해야 하는 약속이다.

추상 클래스를 사용하는 이유

추상 클래스는 부모 클래스에서 공통된 기능이나 규격을 정의하고, 실제 동작은 자식 클래스가 구현하도록 만들기 위해 사용한다.

예를 들어 모든 무기는 공격() 기능을 가져야 하지만, 공격 방식은 무기마다 다르다.

  • 칼 → 칼로 공격
  • 활 → 활로 공격

이처럼 기능은 동일하지만 구현이 다른 경우 추상 메서드를 사용하면 자식 클래스가 반드시 구현하도록 강제할 수 있다.

'알고리즘 > Java' 카테고리의 다른 글

[Java] 명언 게시판 만들기(1~5단계)  (0) 2026.07.16
[Java] 캡슐화(Encapsulation)  (0) 2026.07.15
[Java] 구성  (0) 2026.07.15
[Java] 상속  (0) 2026.07.14
[Java] static 변수 / 메서드  (0) 2026.07.14

댓글