首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视 ┆淘宝手机在线充值 ┆淘宝游戏点卡充值 
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>NET专区>C#语言>浅谈接口和抽象类的区别,加了自己的一点观点
浅谈接口和抽象类的区别,加了自己的一点观点
来源: 发布时间:2008-09-27 发布人: 浏览: 人次   字体: [ ]  

   简单来说,接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的.

   另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。

    还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用.
 
     接口和抽象类的区别,我觉得主要是两点,一个是抽象类里还可以有非抽象的方法,虽然抽象类仍无法实例化,但是其子类可以,也就是说这些非抽象函数仍可以被多态调用,这也是抽象类为什么没有完全被接口取代的原因。接口就是相反了,不过接口也有一个优势是抽象类无法比拟,就是类可以继承多个接口,而抽象类和普通类一样,只能继承一个,所以接口可以解决多重继承问题。

     抽象类可以只实现部分方法,接口则必须实现其全部方法;抽象类的方法可以有抽象方法,也可以有普通方法,接口里的方法必须是抽象方法;抽象类的方法的访问权限可以多种,接口的方法的访问权限只能是public;抽象类的子类只能继承一个抽象类,而实现接口的类可以同时实现多个接口.
 
   笼统点说:
      接口 = 定义了要做的所有事情,但自己啥也不干
      抽象类 = 做了部分共做,剩下的他不干了,等后来人继续完成
    OK,这就是区别!


相 关 文 章   发布商链接
·什么是动态链接库?C#创建和调用DLL?
·C#如何调用C++写的动态链接库?
·C#语言基础之范型入门示例,附代码说...
·C#最为常用到的排序算法大全
·Dictionary泛型集合操作使用事例
·如何用C#获取IP地址、子网掩码和网关...
·有助快速理解C#委托和事件之间关系的...
·C#调用C++的函数实现串口通信读写操...
·C#生成XML文件代码一例
·利用C#实现获得指定网页的源代码方法
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·最为经典的C#操作文件的方法...
·有助快速理解C#委托和事件之...
·C#泛型学习笔记总结
·c#语言从dbf数据库提取数据并
·C#编写控制线程的运行和线程...
·怎样在C#中删除只读文件及其...
·C#函数中返回多个值的两种方...
·如何在C#中插入照片到Excel文
·如何在c#中获取事件注册的方...
·C#对timer类的使用操作代码
·什么是泛型?泛型的一些概述
·C#如何从文本文件读取信息并...
·如何在c#中去掉字符串中的回...
·如何使用C#获取IIS服务器版本...
·什么是泛型编程思想?及其简...
热 门 文 章
·C#如何获取文件路径中的文件...
·c#中收发邮件处理代码(POP3,...
·什么是c#深拷贝与浅拷贝及其...
·C#语言实现创建、删除和移动...
·C#中关于四舍五入函数的讨论...
·c#中的ArrayList属性祥解及其...
·快速进行List排序的通用方法...
·C#对timer类的使用操作代码
·C#如何从文本文件读取信息并...
·C#语言实现从XML文件导出数据...
·用C#编写ActiveX控件代码实例
·如何在c#中去掉字符串中的回...
·String.Split 方法使用及其代...
·C#语言绘制实时曲线图代码实...
·c#子线程控制进度条的一个简...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .