C#中的抽象类和接口类有什么不同?

时间:2011-03-14 07:54:13

标签: c# interface abstract-class

C#中的抽象类和接口类之间有什么不同?

8 个答案:

答案 0 :(得分:8)

界面不是一个,它只是一个合同,用于定义必须的公共成员强>实施。

抽象类只是一个无法创建实例的类。通常,您可以使用它来定义一个基类,为派生的类定义一些虚拟方法。

答案 1 :(得分:2)

而不是在这里写完整件事。

尝试http://www.codeproject.com/KB/cs/abstractsvsinterfaces.aspx

答案 2 :(得分:1)

一个类可以实现多个接口,但只能从一个抽象类继承。

抽象类可以为它的方法提供实现。接口无法提供实现。

答案 3 :(得分:1)

界面的级别高于抽象级别 当你设计strcuture时,绘制uml,你应该使用界面 当你实施时,你应该使用摘要来提取重复的东西。

无论如何,不​​同的不仅是语法问题。
希望它有所帮助。

答案 4 :(得分:0)

Google“抽象类与界面”,您将获得大量解释性文章......

答案 5 :(得分:0)

  

一个类可以实现多个   接口但只能继承   一个抽象类。

此外,抽象类可能定义了一些函数,但接口没有任何函数定义,派生类必须定义所有函数。

答案 6 :(得分:0)

我会通过用法解释这一点。当只有一个层次结构时,可以使用抽象类,另外没有默认实现;而界面可以跨层次结构(水平)使用,通常称为行为。

接口也是一个抽象,在c#中替换多个类继承,所以这可能会令人困惑,但你必须要区分何时使用什么。

希望这有帮助, 罗伯特

答案 7 :(得分:0)

抽象类的目的是为一组派生类如何工作提供基类定义,然后允许程序员填充派生类中的实现。 当我们创建一个接口时,我们基本上创建了一组方法,没有必须被实现的类覆盖的任何实现。它的优点是它为类提供了一种方法,使其成为两个类的一部分:一个来自继承层次结构,另一个来自接口。