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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴泉水 黑马帝   /  2011-12-14 15:52  /  1962 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

概念很模糊哦,它们有很多相似之处!

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

3 个回复

倒序浏览
何旭 黑马帝 2011-12-14 16:58:48
沙发
先说委托:委托delegate,他实际上就是方法的指针!,他的的值就是一个或者多个方法的引用的指向!
接口: interface 接口是一种能力,你实现了某个接口,就获得了某种能力。

由于语文一直不好,水平有限,解释的不好,见谅!

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

回复 使用道具 举报
最大的区别在于,我们可以在委托类的对象内,叠加或者删除多个方法;而接口一次只能加载一个方法;
在以下情况中使用委托:

当使用事件设计模式时。-一种设计模式

当封装静态方法可取时。-隐藏静态方法;我举个例子:new delegate(静态方法)

当调用方不需要访问实现该方法的对象中的其他属性、方法或接口时。

需要方便的组合。

当类可能需要该方法的多个实现时。需要一个委托完成多个事情的时候。

在以下情况中使用接口:

当存在一组可能被调用的相关方法时。

当类只需要方法的单个实现时。

当使用接口的类想要将该接口强制转换为其他接口或类类型时。

当正在实现的方法链接到类的类型或标识时:例如比较方法。

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

回复 使用道具 举报
委托:
  委托是一种定义方法签名的类型。当实例化委托时,你可以将其实例与任何具有兼容签名的方法相关联。你可以通过委托实例调用方法。
  委托用于将方法作为参数传递给其他方法。事件处理程序就是通过委托调用的方法。你可以创建一个自定义方法,当发生特定事件时某个类(例如 Windows 控件)就可以调用你的方法.
  委托具有以下特点:
  委托类似于 C++函数指针,但它们是类型安全的。
  委托允许将方法作为参数进行传递。
  委托可用于定义回调方法。
  委托可以链接在一起;例如,可以对一个事件调用多个方法。
  方法不必与委托签名完全匹配。

接口:
  接口描述的是可属于任何类或结构的一组相关功能。接口可由方法、属性、事件、索引器或这四种成员类型的任意组合构成。接口不能包含字段。接口成员一定是公共的。
  当类或结构继承接口时,意味着该类或结构为该接口定义的所有成员提供实现。接口本身不提供类或结构能够以继承基类功能的方式继承的任何功能。但是,如果基类实现接口,派生类将继承该实现。
  类和结构可以按照类继承基类或结构的类似方式继承接口,但有两个例外:
  类或结构可继承多个接口。
  类或结构继承接口时,仅继承方法名称和签名,因为接口本身不包含实现。
  接口具有下列属性:
  接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。
  不能直接实例化接口。
  接口可以包含事件、索引器、方法和属性。
  接口不包含方法的实现。
  类和结构可从多个接口继承。
  接口自身可从多个接口继承。

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

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