IT자료실/기술서적

오브젝트 - 기술서적 스터디 12단원-다형성

Ramda 2023. 11. 2. 09:59

 

다형성

상속의 목적은 코드재사용이 아니다. 상속은 타입 계층을 구조화 하기 위해 사용

상속의 메커니즘

  • 업캐스팅 : 부모클래스타입으로 선언된 변수에 자식 클래스의 인스턴스를 할당하는 것이 가능
  • 동적 바인딩 : 선언된 변수의 타입이 아니라 메시지를 수신하는 객체의 타입에 따라 실행되는 메서드가 결정, 이것은 객체지향 시스템이 메시지를 처리할 적절한 메서드를 컴파일 시점이 아니라 실행 시점에 결정하기 떄문

동적 메서드 탐색과 다형성

  • 메시지를 수신한 객체는 먼저 자신을 생성한 클래스에 적합한 메서드가 존재한는지 검사한다, 존재할 경우 메서드를 실행하고 탐색을 종료한다
  • 메서드를 찾지 못했다면 부모 클래스에서 메서드 탐색을 계속한다, 적합한 메서드를 찾을 때 까지 상속 계층을 따라 올라가며 계속된다
  • 상속 계층의 가장 최상위 클래스에 도달해도 메서드를 발견하지 못하면 예외를 발생시키고 탐색을 중단한다

Self 참조

  • 메시지를 수신한 객체의 클래스에 따라 메서드 탐색을 위한 문맥을 실행시점에 결정

Super 참조

  • 부모클래스만 호출하지 않고 조상클래스를 호출하는 것
    (부모클래스부터 검색을 메서드 탐색을 시작한다. 더 상위의 부모클래스로 이동한다)