Open yepdi opened 2 years ago
많은 형태를 가질 수 있는 능력
유니버설 다형성
임시 다형성
메시지를 수신한 객체는 먼저 자신을 생성한 클래스에 적합한 메서드가 존재하는지 검사. 존재하면 메서드 실행하고 탐색 종료
메서드를 찾지 못했다면 부모 클래스에서 메서드 탐색을 계속한다. 적합한 메서드를 찾을 때 까지 상속 계층을 따라 올라간다
상속 계층의 가장 최상위 클래스에 이르렀지만 메서드를 발견하지 못한 경우 예외를 발생시키며 탐색 중단
self 참조(self reference)
메시지는 상속 계층을 따라 부모 클래스에게 자동으로 위임된다
동적인 문맥을 결정하는 것은 메시지를 수신한 객체를 가리키는 self
self 전송이 깊은 상속 계층과 계층 중간중간에 함정처럼 숨겨져 있는 메서드 오버라이딩과 만나면 극단적으로 이해하기 어려운 코드가 만들어진다
다형성
많은 형태를 가질 수 있는 능력
유니버설 다형성
임시 다형성
상속의 양면성
데이터 관점의 상속
행동 관점의 상속
업캐스팅, 동적 바인딩
동적 메서드 탐색과 다형성
메시지를 수신한 객체는 먼저 자신을 생성한 클래스에 적합한 메서드가 존재하는지 검사. 존재하면 메서드 실행하고 탐색 종료
메서드를 찾지 못했다면 부모 클래스에서 메서드 탐색을 계속한다. 적합한 메서드를 찾을 때 까지 상속 계층을 따라 올라간다
상속 계층의 가장 최상위 클래스에 이르렀지만 메서드를 발견하지 못한 경우 예외를 발생시키며 탐색 중단
self 참조(self reference)
자동적인 메시지 위임
메시지는 상속 계층을 따라 부모 클래스에게 자동으로 위임된다
동적인 문맥을 결정하는 것은 메시지를 수신한 객체를 가리키는 self
self 전송이 깊은 상속 계층과 계층 중간중간에 함정처럼 숨겨져 있는 메서드 오버라이딩과 만나면 극단적으로 이해하기 어려운 코드가 만들어진다
self 대 super
상속 대 위임