本人菜鸟学习c#,终于学到类继承了,可是到了接口卡住了,请问各位大侠,接口到底是个什么东西,接口干什么用的啊?书上写的一只不理解,哎,愁死了,请大侠指教

解决方案 »

  1.   

    就是约定,契约。
    比如你有个函数Run函数,那你就需要一个接口
    interface ICanMove
    {
        void Move();
    }
    也就是说凡是继承了这个接口的类都会实现这个Move行为,所以你的run函数就可以针对接口编程
    public void Run(ICanMove obj)
    {
        obj.Move();
    }
    这样做你的程序就很灵活,因为人可以动,猫狗也可动,以后还可以添加飞机,导弹什么的
      

  2.   

    那这个move行为是干吗用的啊?类型是void,啥也没有啊 还有 run函数里面参数是这个接口Icanmove obj,啥意思呢?后面的obj怎么能.出move呢?
      

  3.   

    这是基本的面向对象知识接口里的函数Move是要继承了给接口的类实现的,接口只是一个契约告诉你ICanMove有个行为叫做Move而具体怎么实现这个行为,run函数是不关心的。
    ICanMove obj,就是实现了该接口的类的实例对象,因为他继承了ICanMove自然就有move行为。
      

  4.   

    那以后我们就去完善run函数是吧?
      

  5.   

    不是完善Run函数,面向对象设计原则有一个ocp原则,就是开放-闭合原则。
    针对ICanMove接口编写的Run函数以后就不需要改动了,这就是对更改闭合。而如有又有新的类型继承了接口比如飞机,导弹,外星人这些类新增的,但是他们的加入不会影响到Run函数的内部实现这就做对程序扩展开放
      

  6.   

    java与模式这本书是非常好的面向对象思想入门书籍
      

  7.   

    谢谢,fuadam,可是我刚学c#,对java不明白呵呵。哎,我现在感觉学这个编程真累啊,入门那么难呢
      

  8.   

    你先把基本概念先看一遍,了解基本的类库使用就行了。你移开是编程基本也用不上自定义接口,会.net里那个几个关键的就行了。
      

  9.   

    java与模式看不懂的话 可以先看看大话设计模式这书网上有电子版的
      

  10.   

    现在我都有些迷茫,学完了这个.net我能做出些什么东西来呢,不会仅能做个网站吧,怎么就业呢,哎,愁啊不过,谢谢fuadam指导,o(∩_∩)o...