看看这段代码。
public abstract class Customer
{
public abstract void Print();
}
class Program : Customer
{
public override void Print()
{
Console.WriteLine("Print Method");
}
}
当我们实现抽象类的抽象方法时,我们使用override关键字,如上所示。
现在看看这段代码。
public interface ICustomer
{
void Print();
}
class Program : ICustomer
{
public void Print()
{
Console.WriteLine("Print Method");
}
}
当我们实现接口的方法时,我们不使用override关键字。为什么?
答案 0 :(得分:2)
对于界面,没有什么可以覆盖。目前还没有实施。 CLR不必走类层次结构来找到具有适当实现的类,只有一个。
对于抽象方法,已经有一个实现(或类中的定义),并且必须覆盖该实现。这就是语言的定义方式。