추상 클래스 구현 강제 구조

추상 클래스는 공통 구현과 미완성 계약을 함께 제공하고, 서로 다른 자식 클래스가 같은 슬롯을 각 방식으로 채웁니다.

abstract class Shape공통 name과 displayInfo()를 제공하고 area() 구현을 자식에게 요구합니다.
extends

Circle

radius를 보관하고 area()를 원의 넓이 공식으로 구현합니다.

extends

Rectangle

width와 height를 보관하고 area()를 사각형 공식으로 구현합니다.

핵심new Shape()은 금지되지만 Shape 타입으로 두 자식을 묶으면 같은 호출부에서 다형적으로 사용할 수 있습니다.