关于接口类。。 如题。对接口这些一直不了解。请问这是什么用法,怎么上面的接口类能在后台实例化。。接口类 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你实例化的是UserManager,而不是IUserManager 你new的是对象,然后赋值给接口,接口是不能new的。 原来还可以这样写,,以前没写过,刚没看仔细,。原来 UserManage类是已经继承 IUserManage类的。那我直接改成 UserManage IUmanage = new UserManage()能行吗? 跟上面有什么区别吗? 面向接口编程,看看这个。http://kb.cnblogs.com/page/145704/ 可以百度一下依赖注入(DI)那样你还要这个接口干嘛。。还不如直接写成:UserManage abc = new UserManage()你需要搞清楚接口是拿来干什么的先。。 接口没办法“实例化”。int i; 这是“实例化”么?这是声明i的类型。同样,接口只是类型。什么是实例化?调用new构造函数的才是。 IUserManage IUmanage = new UserManage()你可以把这句话分两句来理解就非常明了了: 1 UserManage oUmanage = new UserManage(); //这句对象实例化,不解释 2 IUserManage IUmanage = oUmanage; //IUmanage 接口就指向了oUmanage对象了。 然后你可以通过IUmanage来调用接口声明的方法,属性了。而类oUmanage是调用不到接口声明的方法的。 接口是一系列方法的集合。比如定义一个接口,有吃,喝,拉,撒,睡。五种方法。接口的名字叫暂且叫做动物。能够完成这五种动作的就算是这个接口,就是从这个接口继承而来。你可以拉出一只狗,它就是这个接口的实例。它是动物,但是它是从狗这个类new出来的。你也可以自己蹦出来,你自己也能完成这五个动作,也是个动物。但你是从人实例化出来的。但是你要直接从动物实例化一个什么东西出来,那就是做不到的。所以接口不能直接实例化。 原来还可以这样写,,以前没写过,刚没看仔细,。原来 UserManage类是已经继承 IUserManage类的。那我直接改成 UserManage IUmanage = new UserManage()能行吗? 跟上面有什么区别吗?如果UserManage的IUserManage是隐式实现的,那么没有区别。如果是显示实现的,那么UserManage不能调用接口的方法。 原来还可以这样写,,以前没写过,刚没看仔细,。原来 UserManage类是已经继承 IUserManage类的。那我直接改成 UserManage IUmanage = new UserManage()能行吗? 跟上面有什么区别吗?如果UserManage的IUserManage是隐式实现的,那么没有区别。如果是显示实现的,那么UserManage不能调用接口的方法。 这才明白,,谢谢各位的回复 菜鸟请求各位帮个忙,很简单的问题 ProgressBar的属性Style为Marquee问题,奇怪。。。。 B/S结构还是C/S结构 浮点数怎么取小数点前两位? 请问用c#如何实现获取word或者其他文字编辑器焦点内的文本内容 关于winform 皮肤的问题,制作方法讨论 请教:如何将自定义数据绑定到DataGrid c# .net 如何获取某一行的列数? 关于jpeg图像的显示 大伙能否谈谈.net整体软件框架的设计 Xml节点为什么删除不掉 网页里的字号font-size:20转换成winform中DrawString里的new Font(里的emSize)是怎么转换,什么样的比例
原来还可以这样写,,以前没写过,刚没看仔细,。原来 UserManage类是已经继承 IUserManage类的。那我直接改成 UserManage IUmanage = new UserManage()能行吗? 跟上面有什么区别吗?
UserManage abc = new UserManage()你需要搞清楚接口是拿来干什么的先。。
你可以把这句话分两句来理解就非常明了了:
1 UserManage oUmanage = new UserManage(); //这句对象实例化,不解释
2 IUserManage IUmanage = oUmanage; //IUmanage 接口就指向了oUmanage对象了。
然后你可以通过IUmanage来调用接口声明的方法,属性了。而类oUmanage是调用不到接口声明的方法的。
比如定义一个接口,有吃,喝,拉,撒,睡。五种方法。接口的名字叫暂且叫做动物。
能够完成这五种动作的就算是这个接口,就是从这个接口继承而来。你可以拉出一只狗,它就是这个接口的实例。它是动物,但是它是从狗这个类new出来的。
你也可以自己蹦出来,你自己也能完成这五个动作,也是个动物。但你是从人实例化出来的。
但是你要直接从动物实例化一个什么东西出来,那就是做不到的。所以接口不能直接实例化。
原来还可以这样写,,以前没写过,刚没看仔细,。原来 UserManage类是已经继承 IUserManage类的。那我直接改成 UserManage IUmanage = new UserManage()能行吗? 跟上面有什么区别吗?
如果UserManage的IUserManage是隐式实现的,那么没有区别。如果是显示实现的,那么UserManage不能调用接口的方法。
如果UserManage的IUserManage是隐式实现的,那么没有区别。如果是显示实现的,那么UserManage不能调用接口的方法。 这才明白,,谢谢各位的回复