【发布时间】:2014-09-20 05:47:21
【问题描述】:
在下面的代码中,如果管理器类不继承抽象类“客户”,并且如果我在“显示”方法中使用 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- 你会覆盖什么?而且你不能覆盖接口方法——那些只是必须声明的契约方法。
标签: c#