无论是在C#还是Java中,还是在oops概念之后的任何其他语言中,默认情况下概念都将"Object"作为超类.为什么我们需要将Object作为我们创建的所有类的基类?
当在C#或Java等语言中无法进行多重继承时,如果已经从Object类派生,我们如何从另一个类派生我们的类.这个问题可能看起来很傻,但想知道一些专家的意见.
Jon*_*eet 14
具有单根类型的层次结构可以以各种方式方便.特别是在仿制药出现之前,它是唯一ArrayList能够起作用的方式.有了泛型,它的优势明显减少 - 虽然它在某些情况下仍然有用,但我怀疑.编辑:作为一个例子,LINQ to XML的构造模型在通过object... 指定方面非常"松散" 但是它的效果非常好.
至于派生自不同的类 - 你直接从一个类派生,但这又将从另一个类间接派生,依此类推到Object.
请注意,"所有对象具有共同点"的东西,例如哈希码,相等性和监视器,都算作另一个设计决策,我会质疑它的智慧.如果没有单一的根系层次结构,这些设计决策可能不会以同样的方式进行;)
事实上每个类都继承了编译器确保的对象.
意思是你写的:
class A {}
Run Code Online (Sandbox Code Playgroud)
它将编译如下:
class A : Object{}
Run Code Online (Sandbox Code Playgroud)
但如果你说:
class B : A {}
Run Code Online (Sandbox Code Playgroud)
Object将在层次结构中,B 但不是直接 - 所以仍然没有多重继承.
| 归档时间: |
|
| 查看次数: |
2339 次 |
| 最近记录: |