abstract class

추상 클래스는 공통 구현과 필수 재정의를 함께 둡니다

인터페이스가 모양만 요구한다면 추상 클래스는 일부 동작을 제공하면서 하위 클래스가 채워야 할 메서드도 지정합니다.

abstract class

직접 생성 금지

기본 뼈대만 제공하므로 new로 바로 만들 수 없고 하위 클래스가 필요합니다.

abstract class Shape
abstract method

필수 구현

하위 클래스마다 달라지는 동작은 선언만 두고 구현을 강제합니다.

abstract area()
공통 메서드

기본 동작 공유

여러 하위 클래스가 함께 쓰는 계산이나 검증 로직을 부모에 둘 수 있습니다.

move()
interface 비교

계약만 필요

상태와 구현 공유가 없다면 더 가벼운 interface가 확장에 유리합니다.

interface Drawable