본문 바로가기
  • 주니어 개발자의
    RESTful 성장기
Web/Java

추상 클래스 (Abstract Class)

by 돌건 2021. 3. 30.

추상 클래스

  • 객체를 직접 생성할 수 있는 클래스들의 공통적인 특성을 추출해 선언한 클래스를 말한다.
  • 추상 클래스와 실체 클래스는 상속의 관계를 지닌다.
  • 추상 클래스가 부모이고 실체 클래스가 자식으로 구현된다.
  • 실체 클래스는 추상 클래스의 모든 특성을 물려받고, 추가적인 특성(필드, 메소드)을 지닐 수 있다.
  • 실체 클래스의 공통되는 필드와 메소드를 추출해 만들어졌으므로 new 연산자를 통해 인스턴스를 생성시키지 못한다.
  • 추상 클래스는 새로운 실체 클래스를 만들기 위한 부모 클래스로만 사용된다.

추상 클래스를 만드는 이유는 무엇일까?

  1. 실체 클래스들의 공통된 필드와 메소드의 이름 통일
  2. 실체 클래스 작성 시간 절약

추상 클래스 선언

public abstract class 클래스 {
    // 필드
    // 생성자
    // 메소드
}

자식 객체가 생성될 때 super(...)를 호출해 추상 클래스 객체를 생성하므로 추상 클래스도 반드시 생성자가 있어야 한다.

 

추상 메소드와 오버라이딩

  • 추상 메소드란, 메소드의 선언만 통일화하고, 실행 내용은 실체 클래스마다 달라야 하는 경우 추상 클래스에서만 선언 가능한 메소드를 말한다. (중괄호 {} 없음)
  • 추상 클래스를 설계할 때, 자식 클래스에서 정의하도록 하고 싶은 메소드가 있는 경우 해당 메소드를 추상 메소드로 선언하면 된다.
  • 자식 클래스는 반드시 추상 메소드를 Overriding해 정의해야 한다.
[public | protected] abstract 리턴타입 메소드명(매개변수, ...);

 

참고 서적 : 이것이 자바다 신용권의 Java 프로그래밍 정복

댓글