C#中的抽象类和接口类有什么不同?
一个类可以实现多个接口,但只能从一个抽象类继承。
抽象类可以为其方法提供实现。一个接口不能提供实现。
谷歌“抽象类VS界面”,你会得到很多解释性的文章...
相同..:D – 2011-03-14 08:29:57
一个类可以实现多个 接口,但只能从 继承一个抽象类。
此外,抽象类可能定义了一些函数,但接口不会有任何函数定义,并且派生类必须定义它们全部。
的接口不是类,这是合同只是一个定义公众成员类必须实现。
抽象类只是一个类,从中你不能创建实例。通常你会用它来定义一个基类,它定义了虚拟方法的衍生类来实现。
接口级别高于抽象级别。
当你在设计strcuture时,画出uml,你应该使用界面。
当你实现时,你应该使用抽象来提取重复的东西。
无论如何,不同的是不仅仅是一个语法问题。
希望它有帮助。
我会通过使用解释这一点。当只有一个层次结构时可以使用抽象类,另外没有默认实现;而接口可以跨层次使用(水平),通常称为行为。
接口也是一个抽象,并在C#中替代多个类的继承,所以这可能会令人困惑,但你必须区分何时使用什么。
希望这有助于 罗伯特
一个抽象类的目的是为如何了一组派生类将工作,然后让程序员以填补执行派生类的基类定义。 当我们创建一个接口时,我们基本上创建了一组方法,而没有任何必须被实现的类覆盖的实现。其优点是它为类提供了一种方法,使其成为两个类的一部分:一个来自继承层次结构,另一个来自接口。
接口不是一个类,我猜.. – 2011-03-14 07:58:58
伟大的面试问题 – RobS 2011-03-14 08:00:35
可能是有用的http://stackoverflow.com/questions/10443344/when-to-use-abstract-classes-and-interfaces/10443530 #10443530 – 2012-05-15 12:13:23