c# - 比较 : interface methods vs virtual methods vs abstract methods

标签 c# interface virtual abstract

它们各自的优缺点是什么?

  • 接口(interface)方法
  • 虚方法
  • 抽象方法

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

最佳答案

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

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

关于c# - 比较 : interface methods vs virtual methods vs abstract methods,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4762930/

相关文章:

c# - Foreach 遍历给定月份的年份的方法?

c# - C# 中用户定义的编译时类型约束

c# - 如果我的 MVC3 应用程序中出现问题,如何制作捕获所有错误页面?

java - 如何使用 2 个虚拟机在 java 中测试我的套接字程序?

C# IE11 selenium webdriver,新选项卡没有新窗口句柄

c# - 应用程序设计 - 数据库表和接口(interface)

delphi - 在 Delphi 中将接口(interface)引入现有的类层次结构

java - 通过接口(interface)发送后ArrayList项无法访问

javascript - 检测虚拟键盘与硬件键盘

c++ - 调用一个函数的 child 版本而不是 parent ?