【发布时间】:2011-07-14 20:08:35
【问题描述】:
C# 中的抽象类和接口类有什么不同?
【问题讨论】:
-
接口不是一个类,我猜..
标签: c# interface abstract-class
C# 中的抽象类和接口类有什么不同?
【问题讨论】:
标签: c# interface abstract-class
抽象类的目的是为一组派生类如何工作提供基类定义,然后允许程序员在派生类中填充实现。 当我们创建一个接口时,我们基本上是在创建一组没有任何实现的方法,这些实现必须被实现的类覆盖。优点是它提供了一种方法让一个类成为两个类的一部分:一个来自继承层次结构,一个来自接口。
【讨论】:
我会通过用法来解释这一点。只有一个层次结构时可以使用抽象类,另外没有默认实现;而接口可以跨层次结构(水平)使用,通常称为行为。
接口也是一个抽象,在c#中替代了多类继承,所以这可能会让人困惑,但是你必须区分什么时候使用什么。
希望这会有所帮助, 罗伯特
【讨论】:
接口的层次高于抽象。
当你设计结构、绘制 uml 时,你应该使用接口。
当你实现时,你应该使用抽象来提取重复的东西。
无论如何,不同之处不仅仅是语法问题..
希望对您有所帮助。
【讨论】:
接口不是类,它只是定义类必须的公共成员的契约强>实施。
抽象类只是您不能从中创建实例的类。通常,您会使用它来定义一个基类,该基类为要实现的派生类定义一些虚拟方法。
【讨论】:
而不是在这里写完整的东西..
试试http://www.codeproject.com/KB/cs/abstractsvsinterfaces.aspx
【讨论】:
一个类可以实现多个 接口,但只能继承自 一个抽象类。
另外,抽象类可能定义了一些函数,但接口没有任何函数定义,派生类必须定义所有函数。
【讨论】:
谷歌“抽象类与接口”,你会得到很多解释性文章...
【讨论】:
一个类可以实现多个接口,但只能从一个抽象类继承。
抽象类可以为其方法提供实现。接口不能提供实现。
【讨论】: