Abstract Class

추상 클래스는 공통 구현과 구현 의무를 함께 둔다

abstract class는 직접 생성할 수 없지만, 자식 클래스가 반드시 채워야 할 메서드 슬롯을 컴파일 시점에 확인합니다.

blueprint

Shape

공통 상태protected name을 부모가 초기화합니다.

기본 메서드displayInfo()는 모든 도형이 공유합니다.

추상 메서드calculateArea()getPerimeter()는 자식이 구현합니다.

Circle

반지름 공식 구현

radius를 받아 넓이와 둘레 계산식을 채웁니다. 공통 출력 로직은 부모 것을 그대로 씁니다.

Rectangle

가로세로 공식 구현

widthheight로 같은 계약을 다른 계산 방식으로 만족합니다.

new Shape()는 금지되지만, Shape[] 타입으로 여러 자식 인스턴스를 묶어 다형적으로 처리할 수 있습니다.