Interface 구성원은 계약·공통 동작·생성 도구를 나눠 맡는다
모든 코드를 default에 넣으면 구현 state에 접근할 수 없고 추상 계약이 흐려집니다.
| 구성원 | 역할 | 호출 |
|---|---|---|
| abstract method | 구현 필수 계약 | dynamic dispatch |
| default method | 공통 instance 동작 | 상속·override |
| static method | factory·utility | Interface.m |
| private method | default 구현 공유 | interface 내부 |
| constant | public static final 값 | Interface.NAME |
핵심: 각 member 종류의 dispatch와 목적을 구분합니다.