为什么我们需要将 Object 类作为所有类的基类?
无论是在 C# 或 Java 中,还是在遵循 oops 概念的任何其他语言中,默认情况下,通常都将“Object”作为它的超类。为什么我们需要将 Object 作为我们创建的所有类的基类?
当在 C# 或 Java 等语言中无法进行多重继承时,当我们的类已经从 Object 类派生时,我们如何从另一个类派生。这个问题可能看起来很愚蠢,但想知道一些专家对此的看法。
无论是在 C# 或 Java 中,还是在遵循 oops 概念的任何其他语言中,默认情况下,通常都将“Object”作为它的超类。为什么我们需要将 Object 作为我们创建的所有类的基类?
当在 C# 或 Java 等语言中无法进行多重继承时,当我们的类已经从 Object 类派生时,我们如何从另一个类派生。这个问题可能看起来很愚蠢,但想知道一些专家对此的看法。
具有单根类型层次结构可以通过各种方式派上用场。特别是,在泛型出现之前,这是类似的东西工作的唯一方法。对于泛型,它的优势要小得多 - 尽管我怀疑它在某些情况下仍然有用。编辑:举个例子,LINQ to XML的构造模型在通过...但它工作得很好。ArrayList
object
至于从不同的类派生 - 你直接从一个类派生,但反过来又会间接地从另一个类派生,依此类推,直到Object。
请注意,“所有对象都有共同点”的东西,如哈希代码,平等和监视器,算作另一个设计决策,我会质疑它的智慧。如果没有单一的根层次结构,这些设计决策可能不会以同样的方式做出;)
每个类都继承编译器确保的对象这一事实。
意思是你写的:
class A {}
它将像这样编译:
class A : Object{}
但如果你说:
class B : A {}
Object
将在层次结构中但不直接 - 所以仍然没有多重继承。B