【发布时间】:2018-07-11 21:50:01
【问题描述】:
看看这段代码。
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 关键字。为什么?
【问题讨论】:
-
因为这就是该语言功能的设计方式。
-
见here
-
为什么我们使用
=来赋值?为什么我们使用&来执行二进制与?为什么我们使用||来执行布尔OR? -
我问这个问题是因为接口成员默认是抽象的。所以为了实现它们,我们不应该像抽象类那样使用覆盖。