前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个类如何实现两个接口中同名同参数不同返回值的函数

一个类如何实现两个接口中同名同参数不同返回值的函数

作者头像
深蓝studyzy
发布2022-06-16 13:23:49
2.9K0
发布2022-06-16 13:23:49
举报
文章被收录于专栏:深蓝居

假设有如下两个接口:

代码语言:javascript
复制
public interface IA
{
    string GetA(string a);
}
public interface IB
{
    int GetA(string a);
}

他们都要求实现方法GetA,而且传入的参数都是一样的String类型,只是返回值一个是String一个是Int,现在我们要声明一个类X,这个类要同时实现这两个接口:

代码语言:javascript
复制
public class X:IA,IB

由于接口中要求的方法的方法名和参数是一样的,所以不可能通过重载的方式来解决,那么我们该如何同时实现这两个接口拉?解决办法是把其中的不能重载的方法直接写成接口的方法,同时要注意这个方法只能由接口调用,不能声明为Public类型的.所以X的定义如下:

代码语言:javascript
复制
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;
    }
}

同样如果有更多的同名同参不同返回值的接口,也可以通过"接口名.函数名"的形式实现.

调用方式如下:

代码语言:javascript
复制
public static void Main()
    {
        X a=new X();
        a.GetA("studyzy");
        IB b=a;
        b.GetA("studyzy");
    }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2007-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档