C# 调用c的方法中的接口V/s抽象#

C# 调用c的方法中的接口V/s抽象#,c#,C#,在下面的代码中,如果manager类不继承抽象类“customer”,并且如果我在“display”方法中使用override关键字,那么它会给出一个错误“manager.display()”:找不到合适的方法来重写”。但另一方面,如果“manager”类同时继承接口和抽象类,则带有override关键字的“display”方法不会给出任何错误。它是如何产生的,它调用接口或抽象的哪个方法。为什么不给出错误。请参阅下面的代码 public interface IEmployee { voi

在下面的代码中,如果manager类不继承抽象类“customer”,并且如果我在“display”方法中使用override关键字,那么它会给出一个错误“manager.display()”:找不到合适的方法来重写”。但另一方面,如果“manager”类同时继承接口和抽象类,则带有override关键字的“display”方法不会给出任何错误。它是如何产生的,它调用接口或抽象的哪个方法。为什么不给出错误。请参阅下面的代码

public interface IEmployee
{
    void Display();
}
public abstract class Customer
{
    public abstract void Display();
}
public class Manager : Customer,IEmployee
{
    public override void Display()
    {
        Console.WriteLine("dsds");
    }
}

class Program
{
    static void Main(string[] args)
    {
        Manager c = new Manager();
        c.Display();
        Console.ReadLine();
    }
}

如果要扩展或修改基类的实现,应该使用
override
。您不能重写接口方法——这些只是必须声明的契约方法

从MSDN:

要扩展或修改摘要或注释,需要使用覆盖修饰符 继承的方法、属性、索引器或 事件


如果不是从基类继承,则不能使用
重写
——您将重写什么?您不能重写接口方法——这些只是必须声明的契约方法。