abstract
순수 계약만 남기면 추상 클래스는 인터페이스처럼 동작한다
호출자는 약속만 알고 실제 구현은 파생 타입이 바꿔 끼운다.
상태 없음멤버 변수는 최소화
순수 계약모든 동작을 = 0로 선언
구현 교체FileLogger, ConsoleLogger 교체
호출자 안정ILogger만 의존
| 설계 선택 | 남기는 것 | 얻는 효과 |
|---|---|---|
| 순수 인터페이스 | 함수 시그니처 | 구현체를 바꿔도 호출자는 유지 |
| 상태 없는 기반 | virtual 소멸자 | 안전한 다형성 삭제 |
| 새 구현 추가 | override 구현 | 기존 processData 수정 없음 |
핵심 인터페이스형 추상 클래스는 구현을 숨기고 호출자가 믿을 함수 목록만 남긴다.