比较:界面方法与虚拟方法与抽象方法

时间:2011-01-21 19:25:37

标签: c# interface virtual abstract

每种方法的优点和缺点是什么?

  • 界面方法
  • 虚拟方法
  • 抽象方法

什么时候应该选择什么?做出这个决定时应该记住哪些要点?

1 个答案:

答案 0 :(得分:45)

虚拟和抽象几乎相同。虚方法在基类中有一个实现,可以选择覆盖,而抽象方法没有,并且必须在子类中重写。否则他们是一样的。他们之间的选择取决于具体情况。如果您有基础实现,则使用虚拟。如果你不这样做,并且你需要每个后代为自己实现它,你选择抽象。

接口方法是在类实现的接口中声明的方法的实现。这与其他两个完全无关。我认为一种方法既可以是虚拟也可以是接口。接口的优点是您声明了一个可以由两个完全不同的类实现的接口(duh)。这样,您可以在两个不同的类上运行相同的代码,只要您要调用的方法在它们共享的接口中声明。