2014-01-17 8 views
0

저는 OOP의 실제적인 측면을 잘 알고 있습니다. 이제 기술 문서를 작성 중이며 용어 사용에 대해 질문하고 있습니다. 가명 : OOP에서 관계를 입력하십시오.

enter image description here

이 클래스 계층 구조를 가져 가라. 각 클래스에는 직접 파생되는 0, 1 또는 그 이상의 (다중 상속) 클래스가 있습니다. B에 대해서는 A입니다. A는 B의 기본 클래스 또는 수퍼 클래스 (교환 가능)이라고합니다.

반대로 클래스는 클래스에서 직접 파생되는 클래스 수에 제한이 없습니다. 나는 B와 C가 A의 클래스 인 또는 서브 클래스을 다시 교환 할 수 있다고 가정합니다.

그러나 클래스 의 모든 클래스를 지칭하는 용어도 있어야합니다. 직접 또는 간접적으로으로부터 상속됩니다. D의 관점에서 {A, B}를 어떻게 부르겠습니까?

그리고 모든 클래스에 대해 다른 용어가 누락되었습니다. 직접 또는 간접적으로 클래스에서 파생 된입니다. A의 관점에서 {B, C, D, E}를 어떻게 부르겠습니까?

+0

당신은 그것을 생각하지 못했습니다. _Derived_, _child_, _subclass_는 B/C/D/E 클래스가 A 클래스를 상속 받았다는 사실을 알려주는 유효한 모든 용어입니다. 직접 또는 간접 하위 클래스이므로 Liskov 대체 원리로 인해 실제로 중요하지 않습니다. – MikeSW

답변

0

좋은 질문입니다. 이 경우 A는 루트 클래스이며 다른 모든 클래스는이 클래스에서 상속됩니다. 모든 객체 은 A의 하위 클래스이거나 직접 또는 간접적 인 하위 클래스입니다. 반대의 경우도 마찬가지입니다. B는 D의 직접 수퍼 클래스이고 A는 간접 수퍼 클래스입니다. 당신이 단어 ancestor을 descend/descendant의 반대 단어로 사용할 수 있다고 생각합니다. 그러나 나는 이것을 보지 못했습니다.

+0

이것은 용어 "하위 클래스"/ "수퍼 클래스"자체는 모호합니다. 구체적으로, "직접적인"대 "간접적 인"하위 클래스/수퍼 클래스를 말해야합니다. 나 한테 의미가있어. –