从system.object派生的C#类型

use*_*065 2 c# inheritance

据我所知,C#支持使用Interfaces进行多重继承.当我通过C#book通过CLR时,我得到了一个查询.这本书说

运行时要求每个类型最终都是从System.Object类型派生的.这意味着以下两种类型定义是相同的:

// Implicitly derived from Object
class Employee {
....
}

// Explicitly derived from Object
class Employee : System.Object {
...
}
Run Code Online (Sandbox Code Playgroud)

如果这是正确的陈述,下面提到的代码是真的吗?

// Implicitly derived from Object
class SoftwareEngineer : Employee 
{
....
}

// Explicitly derived from Object
class SoftwareEngineer : Employee, System.Object {
...
}
Run Code Online (Sandbox Code Playgroud)

Ser*_*kiy 6

你不能这样做,因为不允许从类中继承多个:

class SoftwareEngineer : Employee, System.Object
Run Code Online (Sandbox Code Playgroud)

上面的行会给你编译错误:

'SoftwareEngineer'不能有多个基类:'Employee'和'System.Object'

但是因此Employee隐含地继承了System.Object这个意味着SoftwareEngineer也将继承System.Object(你可以把它想象成'垂直'继承):

class Employee : System.Object

class SoftwareEngineer : Employee
Run Code Online (Sandbox Code Playgroud)