abstract class

순수 가상 함수

Shape, calculateArea(), = 0, interface, ILogger 예제는 구현 없는 공통 API를 설명합니다.

= 0

순수 가상 함수

기반 클래스는 호출 이름만 고정하고, 파생 클래스가 계산 규칙을 override하게 만듭니다.

Shape

추상 타입 의미

Circle과 Rectangle은 같은 호출 이름으로 다른 면적을 계산합니다.

interface

인터페이스 동작 목록

ILogger처럼 호출자는 계약만 보고, 파일·콘솔·원격 로거 구현을 바꿔 끼우는 경계에 둡니다.

삭제 책임

추상 기반 소멸자

delete가 올바른 파생 소멸자까지 이어져야 합니다.

객체 생성 순수 가상 함수가 남아 있으면 기반 클래스 객체를 만들 수 없습니다.
파생 구현 모든 순수 가상 함수를 구현한 뒤에야 구체 클래스가 됩니다.
공통 호출 클라이언트 코드는 Shape*만 알아도 calculateArea()를 호출할 수 있습니다.