러스트 다형성은 트레이트 구현, 제네릭, 트레이트 객체로 나뉜다
상속 계층 대신 목적에 따라 기본 구현, 정적 디스패치, 동적 디스패치를 선택한다.
필요 시 override
빠른 정적 디스패치
컬렉션/플러그인
| 구분 | 의미 | 판단 |
|---|---|---|
| 코드 공유 | trait default method | 상속보다 좁은 공유 |
| 성능 중시 | impl Trait / <T: Trait> | 단형화 |
| 타입 혼합 | Box<dyn Trait> | vtable 호출 |
| 데이터 소유 | struct | 동작은 impl/trait |
핵심 러스트 다형성은 “부모 클래스 찾기”가 아니라 호출 시점과 타입 고정 시점을 고르는 것이다.