抽象类和接口之间的区别

r.r*_*r.r 4 c# oop abstract-class interface

可能重复:
接口与基类

我不理解抽象类和接口之间的区别.我什么时候需要使用哪种类型的艺术品?

Rag*_*czy 17

试着这样想:

一个抽象类创建一个"是"的关系.大众汽车是一辆汽车.

一个接口创建一个"能行"的关系.弗雷德可以 IDrive.

此外,弗雷德可以 IDrive,但弗雷德是一个人.


Pra*_*ana 12

当我们创建一个接口时,我们基本上创建了一组方法,没有必须被实现的类覆盖的任何实现.它的优点是它为类提供了一种方法,使其成为两个类的一部分:一个来自继承层次结构,另一个来自接口.

当我们创建一个抽象类时,我们正在创建一个可能有一个或多个已完成方法的基类,但至少有一个或多个方法未完成并被声明为abstract.如果抽象类的所有方法都未完成,那么它与接口相同.抽象类的目的是为一组派生类如何工作提供基类定义,然后允许程序员填充派生类中的实现.

article along with the demo project discussed Interfaces versus Abstract classes.