黑马程序员技术交流社区

标题: C#中的接口和类有什么不同的呢 [打印本页]

作者: lpz869    时间: 2014-5-26 00:54
标题: C#中的接口和类有什么不同的呢
本帖最后由 lpz869 于 2014-5-26 22:40 编辑

C#中的接口和类有什么不同的呢,不明白,请详细解释

作者: 许庭洲    时间: 2014-5-26 06:41
不同点:
1. 不能直接实例化接口;
2. 接口不包含方法的实现;
3. 类定义可在不同的源文件之间进行拆分;

相同点:
1.接口,类和结构都可以从多个接口继承;
2.接口类似于抽象类:继承接口的任何非抽象类型都必须实现接口的所有成员;
3. 接口和类都可以包含事件,索引器,方法和属性。
作者: 袁晓俊    时间: 2014-5-26 09:55
恩恩,,,说得详细,,,,
作者: lin'    时间: 2014-5-28 22:52
都是引用类型. 接口实质上是功能说明书,说明有什么属性和功能(属性和方法) 接口理论上是继承者的父类,因此它可以作为实现类的引用,来封装类的复杂实现。 用接口引用 指向 new 的实例,则该引用只呈现接口中约定的属性和方法(封装) 接口可以理解为是纯抽象的类。它与类的关系好比自动洗衣机的说明书 和自动洗衣机的关系。 说明书里描述了自动加水、自动洗衣、自动脱水等功能方法,也有环保、节能、省水等特(属性)。 但是你不能用这个说明书来洗衣服吧? 你得用这些功能的实现者--洗衣机来洗衣服。 虽然是全自动洗衣机,但是它使用就很简单,1 打开盖子,放入衣服; 2 按下“开始”开关 主人完全不用关心洗衣机的内部是如何的复杂(封装)。 体现在代码上就是: 1 约定全自动洗衣机的功能,定义一个接口说明书 public Iterface IWashMac{     void 放入衣服();     void 开始洗衣(); } public class Wasmac: IWashMac{     public void 放入衣服(){        //...     }     public void 开始洗衣(){       //...      } }




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