Abstract - 추상클래스

수뱀 ㅣ 2025. 7. 23. 16:38

정의

 

  • abstract 키워드를 사용하여 선언된 클래스
  • 하나 이상의 추상 메서드(구현되지 않은 메서드)를 포함할 수 있다
  • 인스턴스를 직접 생성할 수 없다
  • 서브클래스에서 상속받아 사용해야 한다

 

 

목적

 

  • 공통된 기능은 구현하고, 특정 기능은 하위 클래스에 위임할 때 사용
  • 코드 재사용성과 구조적 설계를 위해 사용됨

 

 

문법 예시

abstract class Animal {
    // 추상 메서드 (하위 클래스가 구현해야 함)
    abstract void makeSound();

    // 일반 메서드 (공통 구현 가능)
    void eat() {
        System.out.println("This animal eats food.");
    }
}

class Dog extends Animal {
    @Override
    void makeSound() {
        System.out.println("Bark");
    }
}

 

 

 

 

특징 요약

  특징
abstract 키워드 클래스 또는 메서드에 사용
인스턴스 생성 가능 여부 X
생성자 포함 여부 O(상속시 super로 호출)
필드/메서드 포함 여부 O(일반 필드/ 메서드가능)
인터페이스와 차이점 일부 구현 가능 (인터페이스는 모든 메서드가 기본적으로 추상적)