C#中定义接口有什么作用

 我来答
百度网友66a8d48e5
2011-12-19 · TA获得超过7687个赞
知道大有可为答主
回答量:3002
采纳率:12%
帮助的人:3878万
展开全部
接口最简单的作用就是:不同的类完成相同的行为!

但不同的类的同一行为要延迟到子类实现!

比如,在系统分析时我们只使用了两个类,一个是dog,一个是cat,他们都可以实现一个shot的行为,如果两者均有的情况下,原来是可以将shot行为提升到dog与cat的父类中,也就是动物类中实现,由于系统中并没有对两个类进行提升,也就是说,这当前系统中不存在dog与cat的父类,那么,我们可以实现一个接口去解决这两个不同的类的同一行为,就是定义Ishot接口,让两个不同的类进行继承!这样两个类可以实现同一行为了!

当然这里的类,cat与dog你还可以再提升一个抽象的动物类,如果不能提升时则就不行了!比如鱼类都不会shot,但鲸却可以shot,而鲸具有所有鱼类的特征,这时就不能为鲸的shot进行提升,让所有钱类都会shot并不是一个好主意,所以dog、cat与鲸可以共同继承一个Ishot,但不能让将shot行为提升到dog、cat与鲸的父对象中!

所以对于接口,就简单的一句话来说:接口可以让不同的类实行相同的行为,并将这个行为延迟到子类实现!

至于延迟到子类实现的意思就是,鲸,cat,dog的shot行为并不一样,各自实现不同的功能,并必须要有这个行为才可以的!

如让鲸继承Ishot接口后,在编写鲸这一类型时必须要实现Ishot中的所有方法,如shot,如果不进行实现,则编译就不能通过,也就是说,鲸继承了Ishot,在Ishot中的SHot方法必须在鲸的为中编写实现,这就是延迟到子类实现的意思!
匿名用户
2011-12-19
展开全部
网上找到的答案,希望对你有帮助
1.接口最基本的作用就是作为一个客观的规范 是一类事物所具有的属性的总结 相当于父类
举例说明下 人 有身高这个属性 有吃饭这个方法 有痛了就喊"妈呀"这个事件
OK 这样就可以把这些属性,方法,事件总结起来定义一个接口 叫"人类"
(这里的LogHandler OnLog就是一个事件 下面会具体讲到)

2.接口还有一个最基本的作用(也是父类所没有的)——多态
估名思义 人具有多种"态" 比如某个人却实具有了人类的所有属性 但是很特别 这个人还具备一般人不具有但却是动物独有的一种行为——"吃人"(这里且不把人看做动物) 那么这个人也实现了另一个接口 叫"动物类"
具体实在代码:
public class riBenRen : IPeople, IAnimal
{
private float height = 5.0;
public event BeiKan onBeiKan;
public string Eat(string food){
//消化过程
return "屎";
}
public string EatPeople(IPeople people){
//消化过程
return "屎";
}
}

3.以上两种作用只是形式上的 它还有另一个作用就是"子类的实例调用父类的引用" (貌似是这么说的)
举例说明
我不知道某人叫什么 我只知道他属于人类 那么我一定知道他有吃饭的行为 我就可以扔给他一个骨头
具体代码
IPeople chenLaoShi = new ChenGuanXi();
chenLaoShi .Eat("骨头");

4.至于那个事件
LogHandler是一个委托 为什么叫委托 就是把某件事委托给系统 当什么什么情况就让它触发什么什么事件
具体代码
/*这个是我*/
public class ChaoRen :IPeople
{
public delegate void OnKanRen();
public event OnKanRen kanRen;
//点一个按钮让某人被砍
priate void Button1Click(object sender,EventArgs e){
kanRen();//调用了
}
}
/*被砍那个人的类*/
public class ChenGuanXi : IPeople, IAnimal
{
private class ChaoRen cr;//这个是我
public ChenShuiBian(){
//给陈老师安个定时被砍器 只要我一砍人陈老师就会被砍
cr.kanRen += new EventHander(BeiKan);
}
private void BeiKan(){
//被砍了
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
STG609
2011-12-19
知道答主
回答量:3
采纳率:0%
帮助的人:5185
展开全部
楼上的回答应该能满足楼主了。我再打个比方:如果把接口比作一个合同(规定了你能做什么,但没有规定你怎么做),实现了这个接口的类就相当于是履行合同的人,这个人必须按照合同的规定去做事情,但是不同的人在做某件事的时候会可以通过不同的手段。

希望对你有帮助
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
区拉文70
2011-12-19 · TA获得超过146个赞
知道小有建树答主
回答量:159
采纳率:0%
帮助的人:145万
展开全部
当你知道接口有些什么东西,你就知道实现了这些接口的类肯定具有什么功能。
例如:当你学会了操作某一种DVD机后,你再接触到另外一款DVD机,你肯定会知道绝对存在一个按键可以弹出东西来放光碟。你也肯定知道这个如果是插电源的肯定有个接头。
当然具体实现在不同的dvd机器有差别,有点一下就弹出来,有些弹的慢一些。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式