首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于接口种。

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

关于接口类。。
关于接口种。
如题。对接口这些一直不了解。请问这是什么用法,怎么上面的接口类能在后台实例化。。
关于接口种。 接口 类
[解决办法]
你实例化的是UserManager,而不是IUserManager
[解决办法]
你new的是对象,然后赋值给接口,接口是不能new的。
[解决办法]
C# 三大特征 继承 封装 多肽 你问的就是多肽
[解决办法]

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

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

可以百度一下依赖注入(DI)
[解决办法]
面向接口编程,看看这个。http://kb.cnblogs.com/page/145704/
[解决办法]
接口没办法“实例化”。

int i; 这是“实例化”么?这是声明i的类型。

同样,接口只是类型。什么是实例化?调用new构造函数的才是。
[解决办法]
IUserManage IUmanage = new UserManage()
你可以把这句话分两句来理解就非常明了了:
  1  UserManage oUmanage = new UserManage(); //这句对象实例化,不解释
  2  IUserManage IUmanage = oUmanage;   //IUmanage 接口就指向了oUmanage对象了。
  然后你可以通过IUmanage来调用接口声明的方法,属性了。而类oUmanage是调用不到接口声明的方法的。
[解决办法]
接口是一系列方法的集合。
比如定义一个接口,有吃,喝,拉,撒,睡。五种方法。接口的名字叫暂且叫做动物。
能够完成这五种动作的就算是这个接口,就是从这个接口继承而来。

你可以拉出一只狗,它就是这个接口的实例。它是动物,但是它是从狗这个类new出来的。
你也可以自己蹦出来,你自己也能完成这五个动作,也是个动物。但你是从人实例化出来的。
但是你要直接从动物实例化一个什么东西出来,那就是做不到的。所以接口不能直接实例化。
[解决办法]
引用:
Quote: 引用:

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


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

如果UserManage的IUserManage是隐式实现的,那么没有区别。如果是显示实现的,那么UserManage不能调用接口的方法。

热点排行