2025-08-09 15:05

Tags: 소프트웨어 공학

추상 클래스

  • 미완성된 설계도 역할
  • 직접 객체 인스턴스를 생성할 수는 없음
  • 상속받아 오버라이딩 통해 이렇게 완성하라는 틀과 구조 만들어 강제화
  • 중복 제거 라는 기본적인 목표와 구조 강제 가능
  • 인터페이스와 비슷해보이지만 규약 강제 말고는 다름
  • 여러 클래스가 공통된 상태나 기능 공유 추상 클래스
  • 서로 다른 종류 클래스 동일한 기능, 다중 상속 인터페이스
구분추상 클래스 (Abstract Class)인터페이스 (Interface)
목적관련성이 높은 클래스 간의 **공통된 특징(상태, 행동)**을 공유하고 확장. (IS-A 관계)서로 관련 없는 클래스들에게 **특정 기능(행동)**을 부여. (CAN-DO 관계)
상속/구현단일 상속만 가능 (extends)다중 구현 가능 (implements)
멤버추상/구현 메서드, 변수, 생성자 모두 가능기본적으로 추상 메서드, static final 상수만 가능. (Java 8+ 부터 default, static 메서드 추가)
키워드abstract, extendsinterface, implements
비유설계도. (고양이, 개 포유류)자격증/플러그인. (사람, 로봇 ‘운전할 수 있음’)

References

객체지향 프로그래밍 인터페이스

추상 클래스 핸드북