2012-01-12 2 views
5

나는 S4는 다중 상속을 지원 https://github.com/hadley/devtools/wiki/S4왜 다중 상속을 사용하지 않는 것이 좋습니까? 나는 R.</p> <p>에서 S4 클래스를 만드는 오전

주에 읽을 수 있지만이 방법 조회가 매우 복잡하게 만들면서이 매우주의 을 사용해야합니다.

메서드 조회 란 무엇이며 왜 다중 상속을 사용하면 더 복잡한가?

+0

많은 S4 리소스를 알고 있는지 확인하십시오. http://stackoverflow.com/questions/4143611/sources-on-s4-objects-methods-and-programming-in-r –

답변

10

당신이 x이 여러 클래스 (예를 들어, A, B 및 C)에 속하는으로, f(x) 입력하면 시스템이 호출하는 f 방법을 결정해야한다 (즉, 클래스 A, B 또는 C)가 :이라고 "메소드 조회".

다중 상속은 코드가 발전 할 때 종종 문제를 야기합니다.

두 개의 기본 클래스 A와 B를 작성했다고 가정하고 클래스 C가 두 클래스에서 상속 받았다고 가정 해보십시오. 모든 것이 잘 작동합니다. 몇 달 후, A 클래스를 사용하고 B 클래스와 C 클래스를 전혀 알지 못하는 (개발자는 필요하지 않음) 클래스 A에 새로운 메소드를 추가합니다. 클래스 B의 같은 이름입니다. 클래스 C의 객체는 어떻게됩니까? A 또는 B의 방법을 사용합니까? 일부 언어에서는 코드가 실패 할 수 있으며, 다른 언어에서는 정의되지 않은 동작과 매우 잡기가 어려운 버그가있을 수 있습니다.

+3

당신의 설명을 생각합니다. s4 메소드에 대해 다소 혼란 스럽습니다. 클래스는 클래스가 아니라 함수에 속합니다. – hadley