C#继承:implements + extends

New*_*ger 13 c# oop inheritance

是否可以在以下方面做类似的事情C#:

public class MyClass implements ClassA extends ClassB 
{

}
Run Code Online (Sandbox Code Playgroud)

我需要这个因为:我有两个类,其中一个Interface是我将在我的类中实现的类,但我也想使用另一个类中的方法,这些方法可以在我的类中使用.

Mir*_*Mir 23

C#不支持多重继承.您可以从一个类派生并使用接口满足您的其他需求.

句法:

class MyClass : Foo, IFoo, IBar
{
}

interface IFoo
{
}

interface IBar
{
}

class Foo
{
}
Run Code Online (Sandbox Code Playgroud)

  • 它确实......如果从类继承,那么基类必须先行,然后是接口,否则编译器错误。我自己测试过。 (7认同)
  • 顺序重要吗? (5认同)

Mar*_*ora 7

试试这个:

using System;

public interface A
{
    void DoSmth();
}

public class B
{
    public void OpA() { }
    public void OpB() { }
}

public class ClassC : B, A
{
    public void DoSmth(){}
}
Run Code Online (Sandbox Code Playgroud)

请记住,您不能从特定类级别的两个类继承,它可能只有一个类和任意数量的接口.


小智 5

它应该看起来像这样:

public class MyClass: ClassB, InterfaceA{
}
Run Code Online (Sandbox Code Playgroud)

ClassB 是基类

InterfaceA 是一个接口

您只能扩展一个基类,但可以实现许多接口。