다형성에 상속이 필요한 이유

앞면

다형성을 구현하려면 왜 상속이 필요한가? (정의에서 도출하기)

뒷면

다형성 = 다른 종류의 개체에 같은 지시를 내리면 동작을 달리하는 것 — 정의의 세 요소가 각각 상속을 요구함

  1. “같은 지시” → 동일한 함수 시그니처 공유 필요 → 공유 시그니처가 놓이는 곳 = 부모 클래스 (무늬)
  2. “다른 종류의 개체” → 부모형 변수 하나가 여러 자식 실체를 참조 = 부모형 변수에 자식 대입(is-a) — 핵심 관문, 다형성의 선수 조건
  3. “동작을 달리” → 자식이 시그니처 유지한 채 바디만 덮어씀(오버라이딩) + 실행 중 실체 기준 선택(late binding)

대입은 필요조건이자 관문, late binding이 완성 (대입만 되고 오버라이딩이 없으면 그냥 재사용)

출처: https://pocu-site.pages.dev/pocu-note/COMP2500/008-polymorphism/008-002-simple-polymorphism-example/