黑马程序员技术交流社区

标题: .net [打印本页]

作者: 胡松涛    时间: 2012-7-18 21:25
标题: .net
abstract class和interface有什么区别
作者: 邓戊庚    时间: 2012-7-18 21:29
abstract class  是一个抽象类,声明了这个,就等于独立的一个类了,其他的类不能继承... 抽象方法是没有方法体的方法。  
interface是C# 中接口操作的关键字,功能是把所需成员组合起来,以封装一定功能的集合。它好比一个模板,在其中定义了对象必须实现的成员,通过类或结构来实现它。接口不能直接实例化,即ICount ic=new iCount()是错的。接口不能包含成员的任何代码,只定义成员本身。接口成员的具体代码由实现接口的类提供。接口使用interface关键字进行声明。
作者: 钱灿    时间: 2012-7-18 21:36
抽象类主要用作对象系列的基类,共享某些主要特性;
接口(接口成员是没有代码体的,必须在使用接口的类上实现)主要用于类,这些类在基础水平上有所不同,但仍可完成某些相同的任务。

作者: 李朋霏    时间: 2012-7-19 14:07
共同点:
   都不能被直接实例化,都可以通过继承实现其抽象方法。
不同点:
1 接口支持多继承,但抽象类却不可以。
2 接口只提供行为,不能实现方法行为;但抽象类却可以实现
3 接口中只包含方法,事件,属性,索引的签名,不能具体定义和实现,而抽象类可以。
4 接口可以作用于值类型(struct),而抽象类只可以定义与引用类型
作者: 许庭洲    时间: 2012-7-19 14:10
1,在类来继承抽象类时,只需实现部分具体方法和全部抽象方法,而实现接口则要实现里面的全部方法;
2,在接口中无成员变量,而抽象类中可有成员变量。

作者: 张恒    时间: 2012-7-19 16:15
区别有:
        1、抽象类通过abstract定义,接口通过interface定义
        2、抽象类可以包含已实现的方法,接口不可以
        3、抽象类只支持单继承,接口支持多继承
        4、实现抽象类的方法需要使用override,实现接口的方法时直接实现其方法。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2