A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© songFeng4985 中级黑马   /  2012-11-27 17:41  /  2018 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

C#接口与抽象类的区别,我常常容易把这两者搞混,求哪位能详细的给我讲解下。。

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

3 个回复

正序浏览
       相同点

    • 都不能被直接实例化,都可以通过继承实现其抽象方法。

    • 都是面向抽象编程的技术基础,实现了诸多的设计模式。

        不同点

    • 接口支持多继承;抽象类不能实现多继承。

    • 接口只能定义抽象规则;抽象类既可以定义规则,还可能提供已实现的成员。

    • 接口是一组行为规范;抽象类是一个不完全的类,着重族的概念。

    • 接口可以用于支持回调;抽象类不能实现回调,因为继承不支持。

    • 接口只包含方法、属性、索引器、事件的签名,但不能定义字段和包含实现的方法;抽象类可以定义字段、属性、包含有实现的方法。  

    • 接口可以作用于值类型和引用类型;抽象类只能作用于引用类型。例如,Struct就可以继承接口,而不能继承类
【以上摘自博客园】

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
我的学习笔记有这些的详细说明
http://blog.csdn.net/wrx362114/article/details/8193756#t15
回复 使用道具 举报
接口只能包含对方法的声明,实现部分由继承接口的类完成,接口必然是公有的。
而抽象类内部可以包含具体可实现的方法,可以添加访问修饰符。
更详细内容请百度……

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马