다형성에 상속이 필요한 이유
앞면
다형성을 구현하려면 왜 상속이 필요한가? (정의에서 도출하기)
뒷면
다형성 = 다른 종류의 개체에 같은 지시를 내리면 동작을 달리하는 것 — 정의의 세 요소가 각각 상속을 요구함
- “같은 지시” → 동일한 함수 시그니처 공유 필요 → 공유 시그니처가 놓이는 곳 = 부모 클래스 (무늬)
- “다른 종류의 개체” → 부모형 변수 하나가 여러 자식 실체를 참조 = 부모형 변수에 자식 대입(is-a) — 핵심 관문, 다형성의 선수 조건
- “동작을 달리” → 자식이 시그니처 유지한 채 바디만 덮어씀(오버라이딩) + 실행 중 실체 기준 선택(late binding)
대입은 필요조건이자 관문, late binding이 완성 (대입만 되고 오버라이딩이 없으면 그냥 재사용)
출처: https://pocu-site.pages.dev/pocu-note/COMP2500/008-polymorphism/008-002-simple-polymorphism-example/