System.Object是基类

Nag*_*tri 9 c# inheritance

对于许多人来说这个问题可能是常见的,我试了一个小时来理解这些事情,但没有得到适当的解释.

MSDN说,System.Object是.NET Framework中所有类的最终基类; 它是类型层次结构的根.

当C#不允许多重继承时,我怎样才能继承,比如A类到B类.因为所有类,都已经从System.Object继承了吗?这里我说的是正常的继承.

Class A { --- }
Class B : A { --- }
Run Code Online (Sandbox Code Playgroud)

请清除我的怀疑.谢谢.

更新:

同样,我怀疑的是,所有类继承自System.Object,然后使类B具有类A和System.Object.从我上面的例子

Mar*_*ark 17

正确,C#只允许单一继承.System.Object类由类A隐式继承.因此,类B是-A A,它是一个System.Object.这由编译器负责,因此您不需要明确说出Class A : System.Object(尽管您可以,如果您愿意).

  • 不,B类仅继承A类.它继承了System.Object,因为它继承自A,继承了System.Object.编译器将System.Object继承添加到所有继承层次结构的*top*...仅顶部. (2认同)

idm*_*idm 7

很容易.猿继承自动物,黑猩猩继承自猿.黑猩猩也从动物身上继承,但主要不是通过猿.在.NET中,如果类没有显式声明其继承,则编译器会添加IL代码以从System.Object继承它.如果是,则通过父类型继承System.Object.


Sae*_*ati 5

看,你只能有一个父亲.但你的父亲也可以有一个父亲.因此,您从祖父那里继承了一些属性.Dogclass继承自Mammals,而Animalclass 继承自class,而LivingThingclass 继承自class.

  • ...继而从System.Object类继承:) (6认同)