c#多重继承

nei*_*eil 7 c# multiple-inheritance

我想在C#中实现这一点

(伪代码)

class A;

class B : A;

class C : A, B;

...

A ac = (A)c;

...

B bc = (B)c;
Run Code Online (Sandbox Code Playgroud)

这可能吗?

sta*_*ica 9

在这种特殊情况下,您不需要多重继承:如果类C仅从中继承B,则C可以将任何类的实例强制转换为B A ; 既然B已经衍生出来A,C不需要A再次衍生出来:

class A      { ... }

class B : A  { ... }

class C : B  { ... }

...

C c = new C();
B bc = (B)c;    // <-- will work just fine without multiple inheritance
A ac = (A)c;    // <-- ditto
Run Code Online (Sandbox Code Playgroud)

(正如其他人已经说过的,如果你需要类似于多重继承的东西,请使用接口,因为类可以根据需要实现尽可能多的接口.)


Joh*_*ers 3

不可以。C# 不支持类的多重继承。

一个类可以继承一个类,也可以实现多个接口。