When and Why to use abstract classes/methods?


  当创建一个将广泛分发或重用的类库时(尤其是对于客户端而言),应优先使用抽象类而不是接口。因为,它简化了版本控制。这是Microsoft团队开发基类库的做法。 (COM是围绕接口设计的。)使用抽象类为一族类型定义一个公共基类。使用抽象类提供默认行为。仅在基类在逻辑上所属的层次结构中对基类进行子类化。


我不理解以上引用中的解释。请解释为什么要使用抽象类创建类库?

最佳答案

您应该非常仔细地阅读此类文章。正如我所了解的那样,本文的主要部分致力于c#语言。就这种语言而言,接口和抽象类之间存在很大的差异。例如,就c#语言而言,接口只是“纯”虚拟方法的集合(它们不能在接口内定义,只有类可以实现它)。接口不能具有构造函数。抽象类可以具有构造函数。而且,c#不支持多重继承(与c ++语言相反)。这样,c#接口和抽象类看起来与c ++的接口和抽象类有很大不同

关于c++ - 为什么要使用抽象类创建类库?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42970147/

10-12 16:48