【问题标题】:Nomenclature: type relationships in OOP命名法:OOP 中的类型关系
【发布时间】:2014-02-07 09:55:15
【问题描述】:

我熟悉 OOP 的实际方面。现在我正在写一份技术文档,我在质疑我对术语的使用。

采用这个类层次结构。每个类都有零个、一个或多个(多重继承)它直接派生的类。对于 B,这是 A。我会说 A 是 B 的 base classsuperclass(可互换)。

相反,一个类可以有任意数量的直接派生自它的类。我想说 B 和 C 是 A 的派生类子类,同样可以互换。

然而,还必须有一个术语来指代一个类直接或间接继承自的所有类。从 D 的角度来看,你会如何称呼 {A, B}?

而且我错过了对从一个类直接或间接派生的所有类的另一个术语。从 A 的角度来看,您如何称呼 {B, C, D, E}?

【问题讨论】:

  • 你想多了。 Derivedchildsubclass 都是有效术语,它们告诉您 B/C/D/E 类继承 A 的事实。直接或间接后裔,由于 Liskov 替换原则,这在实践中应该无关紧要

标签: oop class-hierarchy nomenclature


【解决方案1】:

好问题。在这种情况下,A 是 根类,因为所有其他类都继承自它。所有对象 descend 来自 A,或者是 A 的直接或间接子类。反之亦然。 B 是 D 的直接超类,A 是间接超类。我想你可以用ancestor这个词作为descendant/descendant的反义词,但我以前没见过。

【讨论】:

  • 这意味着术语“子类”/“超类”本身是模棱两可的。具体来说,必须说“直接”与“间接”子类/超类。对我来说很有意义。
猜你喜欢
  • 2023-04-07
  • 1970-01-01
  • 2017-07-12
  • 2014-05-10
  • 1970-01-01
  • 2021-10-07
  • 2020-12-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多