Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
命名法:OOP中的类型关系_Oop_Class Hierarchy_Nomenclature - Fatal编程技术网

命名法:OOP中的类型关系

命名法:OOP中的类型关系,oop,class-hierarchy,nomenclature,Oop,Class Hierarchy,Nomenclature,我熟悉OOP的实践方面。现在我正在写一份技术文档,我在质疑我对术语的使用 以这个类层次结构为例。每个类都有零个、一个或多个(多重继承)直接派生的类。对于B,这是A。我认为A是B的基类或超类(可互换) 相反,一个类可以有任意数量的直接派生类。我想说,B和C是A的派生类或子类,同样可以互换 然而,也必须有一个术语来指代一个类直接或间接继承自的所有类。从D的角度,你如何称呼{A,B} 对于直接或间接从类派生的所有类,我缺少了另一个术语。从A的角度来看,你如何称呼{B,C,D,E}?好问题。在本例中,

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

以这个类层次结构为例。每个类都有零个、一个或多个(多重继承)直接派生的类。对于B,这是A。我认为A是B的基类或超类(可互换)

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

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


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

好问题。在本例中,A是根类,因为所有其他类都从它继承。所有对象都从A派生,或者都是A的直接或间接子类。反之亦然。B是D的直接超类,a是间接超类。我想你可以用祖先这个词作为下降/下降的对立面,但我以前没见过。

你想得太多了。派生、子类和子类都是有效的术语,它们告诉您B/C/D/E类继承了A。直接或间接的后代,在实践中都不重要,因为Liskov替换原则这意味着术语“子类”/“超类”本身是不明确的。具体来说,必须说“直接”与“间接”子类/超类。对我来说有道理。