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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lpz869 中级黑马   /  2014-5-26 00:54  /  1343 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 lpz869 于 2014-5-26 22:40 编辑

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

评分

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

查看全部评分

3 个回复

倒序浏览
不同点:
1. 不能直接实例化接口;
2. 接口不包含方法的实现;
3. 类定义可在不同的源文件之间进行拆分;

相同点:
1.接口,类和结构都可以从多个接口继承;
2.接口类似于抽象类:继承接口的任何非抽象类型都必须实现接口的所有成员;
3. 接口和类都可以包含事件,索引器,方法和属性。

评分

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

查看全部评分

回复 使用道具 举报 1 0
恩恩,,,说得详细,,,,
回复 使用道具 举报
都是引用类型. 接口实质上是功能说明书,说明有什么属性和功能(属性和方法) 接口理论上是继承者的父类,因此它可以作为实现类的引用,来封装类的复杂实现。 用接口引用 指向 new 的实例,则该引用只呈现接口中约定的属性和方法(封装) 接口可以理解为是纯抽象的类。它与类的关系好比自动洗衣机的说明书 和自动洗衣机的关系。 说明书里描述了自动加水、自动洗衣、自动脱水等功能方法,也有环保、节能、省水等特(属性)。 但是你不能用这个说明书来洗衣服吧? 你得用这些功能的实现者--洗衣机来洗衣服。 虽然是全自动洗衣机,但是它使用就很简单,1 打开盖子,放入衣服; 2 按下“开始”开关 主人完全不用关心洗衣机的内部是如何的复杂(封装)。 体现在代码上就是: 1 约定全自动洗衣机的功能,定义一个接口说明书 public Iterface IWashMac{     void 放入衣服();     void 开始洗衣(); } public class Wasmac: IWashMac{     public void 放入衣服(){        //...     }     public void 开始洗衣(){       //...      } }

评分

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

查看全部评分

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