【问题标题】:when to use abstract class and when to use interface in c# [duplicate]何时使用抽象类以及何时在 C# 中使用接口 [重复]
【发布时间】:2011-06-25 01:55:56
【问题描述】:

可能的重复:
interface and abstract class.
Abstract classes vs Interfaces

谁能告诉我什么时候应该使用抽象类,什么时候应该使用带有示例场景的接口?

【问题讨论】:

标签: c# oop


【解决方案1】:

如果您要定义行为(如IEnumerable,因为List 的作用类似于IEnumerable),则使用接口,但如果您要定义对象(IS-A)关系的种类,使用抽象类(如Stream -- 因为MemoryStream IS-A Stream)。

【讨论】:

    【解决方案2】:

    如果需要提供基本实现,则应使用抽象类。

    否则,使用接口。

    【讨论】:

    • 无论如何,这是一个简单的好答案。
    【解决方案3】:

    如果您想提供一个方法/一组方法的实现,但不希望人们直接实例化您的父类,请使用抽象类。

    如果您想定义类必须接口的成员,但不提供任何实现,请使用接口。

    【讨论】:

      猜你喜欢
      • 2011-04-02
      • 2012-03-26
      • 2014-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-25
      • 2010-11-16
      • 2015-02-15
      相关资源
      最近更新 更多