如何在类中跳过接口的实现

Avi*_*ash 2 c# oop interface

接口 - I1(包含M1方法)类 - C1:I1(c1实现I1)类 - C2:C1(C2继承C1)

interface I1
{
    void M1();
}
class C1 : I1
{
    void M1(){}
}
class C2 : C1
{
}
Run Code Online (Sandbox Code Playgroud)

要求: "C1"中不应该有"M1"的实现,基本上"M1"需要在"C2"中实现

如何使用任何OOP概念实现这一目标?

Dav*_*ell 9

只要你能够容忍C1是抽象的,这就有效:

interface I1
{
    void M1();
}

abstract class C1 : I1
{
    public abstract void M1();
}

class C2 : C1
{
    public override void M1()
    {
        //
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:正如Isantipov在评论中指出的那样,您可以避免像这样的抽象类:

class C1 : I1
{
    public virtual void M1()
    {
        throw new NotSupportedException();
    }
}
Run Code Online (Sandbox Code Playgroud)


Ser*_*rvy 5

进行C1抽象并定义M1为抽象方法。