如题。对接口这些一直不了解。请问这是什么用法,怎么上面的接口类能在后台实例化。。
接口

解决方案 »

  1.   

    你实例化的是UserManager,而不是IUserManager
      

  2.   

    你new的是对象,然后赋值给接口,接口是不能new的。
      

  3.   


    原来还可以这样写,,以前没写过,刚没看仔细,。原来 UserManage类是已经继承 IUserManage类的。那我直接改成 UserManage IUmanage = new UserManage()能行吗? 跟上面有什么区别吗?
      

  4.   

    面向接口编程,看看这个。http://kb.cnblogs.com/page/145704/
      

  5.   

    可以百度一下依赖注入(DI)那样你还要这个接口干嘛。。还不如直接写成:
    UserManage abc = new UserManage()你需要搞清楚接口是拿来干什么的先。。
      

  6.   

    接口没办法“实例化”。int i; 这是“实例化”么?这是声明i的类型。同样,接口只是类型。什么是实例化?调用new构造函数的才是。
      

  7.   

    IUserManage IUmanage = new UserManage()
    你可以把这句话分两句来理解就非常明了了:
      1  UserManage oUmanage = new UserManage(); //这句对象实例化,不解释
      2  IUserManage IUmanage = oUmanage;   //IUmanage 接口就指向了oUmanage对象了。
      然后你可以通过IUmanage来调用接口声明的方法,属性了。而类oUmanage是调用不到接口声明的方法的。
      

  8.   

    接口是一系列方法的集合。
    比如定义一个接口,有吃,喝,拉,撒,睡。五种方法。接口的名字叫暂且叫做动物。
    能够完成这五种动作的就算是这个接口,就是从这个接口继承而来。你可以拉出一只狗,它就是这个接口的实例。它是动物,但是它是从狗这个类new出来的。
    你也可以自己蹦出来,你自己也能完成这五个动作,也是个动物。但你是从人实例化出来的。
    但是你要直接从动物实例化一个什么东西出来,那就是做不到的。所以接口不能直接实例化。
      

  9.   


    原来还可以这样写,,以前没写过,刚没看仔细,。原来 UserManage类是已经继承 IUserManage类的。那我直接改成 UserManage IUmanage = new UserManage()能行吗? 跟上面有什么区别吗?
    如果UserManage的IUserManage是隐式实现的,那么没有区别。如果是显示实现的,那么UserManage不能调用接口的方法。
      

  10.   

    原来还可以这样写,,以前没写过,刚没看仔细,。原来 UserManage类是已经继承 IUserManage类的。那我直接改成 UserManage IUmanage = new UserManage()能行吗? 跟上面有什么区别吗?
    如果UserManage的IUserManage是隐式实现的,那么没有区别。如果是显示实现的,那么UserManage不能调用接口的方法。 这才明白,,谢谢各位的回复