据我所知,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)
你不能这样做,因为不允许从类中继承多个:
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)