C#中的抽象类和接口类之间有什么不同?
答案 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)
抽象类的目的是为一组派生类如何工作提供基类定义,然后允许程序员填充派生类中的实现。 当我们创建一个接口时,我们基本上创建了一组方法,没有必须被实现的类覆盖的任何实现。它的优点是它为类提供了一种方法,使其成为两个类的一部分:一个来自继承层次结构,另一个来自接口。