接口问题 本人菜鸟学习c#,终于学到类继承了,可是到了接口卡住了,请问各位大侠,接口到底是个什么东西,接口干什么用的啊?书上写的一只不理解,哎,愁死了,请大侠指教 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就是约定,契约。比如你有个函数Run函数,那你就需要一个接口interface ICanMove{ void Move();}也就是说凡是继承了这个接口的类都会实现这个Move行为,所以你的run函数就可以针对接口编程public void Run(ICanMove obj){ obj.Move();}这样做你的程序就很灵活,因为人可以动,猫狗也可动,以后还可以添加飞机,导弹什么的 那这个move行为是干吗用的啊?类型是void,啥也没有啊 还有 run函数里面参数是这个接口Icanmove obj,啥意思呢?后面的obj怎么能.出move呢? 这是基本的面向对象知识接口里的函数Move是要继承了给接口的类实现的,接口只是一个契约告诉你ICanMove有个行为叫做Move而具体怎么实现这个行为,run函数是不关心的。ICanMove obj,就是实现了该接口的类的实例对象,因为他继承了ICanMove自然就有move行为。 那以后我们就去完善run函数是吧? 不是完善Run函数,面向对象设计原则有一个ocp原则,就是开放-闭合原则。针对ICanMove接口编写的Run函数以后就不需要改动了,这就是对更改闭合。而如有又有新的类型继承了接口比如飞机,导弹,外星人这些类新增的,但是他们的加入不会影响到Run函数的内部实现这就做对程序扩展开放 java与模式这本书是非常好的面向对象思想入门书籍 谢谢,fuadam,可是我刚学c#,对java不明白呵呵。哎,我现在感觉学这个编程真累啊,入门那么难呢 你先把基本概念先看一遍,了解基本的类库使用就行了。你移开是编程基本也用不上自定义接口,会.net里那个几个关键的就行了。 java与模式看不懂的话 可以先看看大话设计模式这书网上有电子版的 现在我都有些迷茫,学完了这个.net我能做出些什么东西来呢,不会仅能做个网站吧,怎么就业呢,哎,愁啊不过,谢谢fuadam指导,o(∩_∩)o... [修正]C# 内存操作 byte[]数组 模糊查询 定位 求思路和解决方案 [.NET技术 C#] 正则表达式匹配超链接的 请教大虾这个功能是否可以实现 怎样把c++写的动态库引用到c#中 有关于C# WinForm编程方面的书籍? 我是学生,自学android,想请大家帮忙推荐下好的学习视频! 在DataGridView中,怎樣將焦點設置到某一個Cell上? 升星了,散散分吧。 Linq的简单问题,速来拿分,哈哈! 难题,请各位大虾帮忙,不胜感激!^_^ 一定给分 急求解决c#打印问题!!! 浅谈类间关系
比如你有个函数Run函数,那你就需要一个接口
interface ICanMove
{
void Move();
}
也就是说凡是继承了这个接口的类都会实现这个Move行为,所以你的run函数就可以针对接口编程
public void Run(ICanMove obj)
{
obj.Move();
}
这样做你的程序就很灵活,因为人可以动,猫狗也可动,以后还可以添加飞机,导弹什么的
ICanMove obj,就是实现了该接口的类的实例对象,因为他继承了ICanMove自然就有move行为。
针对ICanMove接口编写的Run函数以后就不需要改动了,这就是对更改闭合。而如有又有新的类型继承了接口比如飞机,导弹,外星人这些类新增的,但是他们的加入不会影响到Run函数的内部实现这就做对程序扩展开放