interface 구성원이 맡는 책임

public 계약과 내부 재사용 코드를 서로 다른 구성원으로 나눈다.

Interface

abstract method

구현 class가 제공할 핵심 계약

required

default method

instance 공통 기본 동작

inherited

static method

type에 속한 factory·utility

not inherited

private method

default 구현끼리 공유하는 세부 로직

internal

핵심: 공통 구현에 instance 상태가 필요하면 abstract class나 composition이 더 적합할 수 있다.