比较:接口方法 vs 虚拟方法 vs 抽象方法

63

每个方法的优缺点是什么?

  • 接口方法
  • 虚方法
  • 抽象方法

什么时候应该选择哪一个?做出这个决定时应该注意哪些要点?


12
@Downvoter:这个问题有什么问题吗?难道不应该问这个问题? - Nawaz
1个回答

66

虚方法和抽象方法基本相同。虚方法在基类中有一个实现,可以选择是否重写,而抽象方法没有实现,必须在子类中被重写。否则它们相同。选择它们取决于具体情况。如果有一个基本实现,使用虚方法。如果没有,并且需要每个派生类都自己实现,就选择抽象方法。

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


8
要了解更多详细信息,请访问https://dev59.com/H3A65IYBdhLWcg3wzyFl#3621600。简而言之,接口方法在生成的IL中被声明为虚拟的。 - cori

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接