一个类如何实现两个接口中同名同参数不同返回值的函数
阅读量:6583 次
发布时间:2019-06-24
本文共 651 字,大约阅读时间需要 2 分钟。
假设有如下两个接口: public interface IA { string GetA(string a);} public interface IB { int GetA(string a);} 他们都要求实现方法GetA,而且传入的参数都是一样的String类型,只是返回值一个是String一个是Int,现在我们要声明一个类X,这个类要同时实现这两个接口: public class X:IA,IB 由于接口中要求的方法的方法名和参数是一样的,所以不可能通过重载的方式来解决,那么我们该如何同时实现这两个接口拉?解决办法是把其中的不能重载的方法直接写成接口的方法,同时要注意这个方法只能由接口调用,不能声明为Public类型的.所以X的定义如下: public class X:IA,IB { public string GetA(string a) { Console.WriteLine("IA.GetA"); return a+":zengyi"; } int IB.GetA(string a)//实现IB接口 { Console.WriteLine("IB.GetA"); return 12; }} 同样如果有更多的同名同参不同返回值的接口,也可以通过"接口名.函数名"的形式实现. 调用方式如下: public static void Main() { X a=new X(); a.GetA("studyzy"); IB b=a; b.GetA("studyzy"); }
你可能感兴趣的文章
Exchange Server 2013 系列八:邮箱服务器角色DAG实战
查看>>
已发布13集网站开发技术视频:http://blog.sina.com.cn/s/blog_67d27f340102vf7l.html
查看>>
Mysql ibdata 丢失或损坏如何通过frm&ibd 恢复数据
查看>>
Deepin OS和WIN7双启动 花屏原因一例
查看>>
UIMenuController—为UITextField禁用UIMenuController功能
查看>>
Protobuf使用不当导致的程序内存上涨问题
查看>>
【原创】扯淡的Centos systemd与Docker冲突问题
查看>>
Spring+Mybatis多数据库的配置
查看>>
给大家推荐一个免费下载名称读写ntfs软件的地方
查看>>
在MySQL数据库建立多对多的数据表关系
查看>>
jquery.validate.min.js表单验证使用
查看>>
在JS中捕获console.log的输出
查看>>
Python扫描IP段指定端口是否开放(一次扫描20个B网段没问题)
查看>>
CentOS7使用firewalld打开关闭防火墙与端口
查看>>