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

假设有如下两个接口:

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");
    }

时间: 2024-08-04 01:26:47

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

java 接口 接口实现-Java中一个类如何实现多个接口中同名同参返回值不同的方法?

问题描述 Java中一个类如何实现多个接口中同名同参返回值不同的方法? 如:` class A implements Interface1,Interface2{ //这里该怎么写呢? } interface Interface1{ public void method(); } interface Interface2{ public int method(); } 解决方案 class A implements Interface1,Interface2{ //直接写啊 public voi

C#实现两接口中同名方法实例分析

  本文实例讲述了C#实现两接口中同名方法.分享给大家供大家参考.具体分析如下: 对于一个类实现两个接口,而这两个接口又有同名方法,C#中的处理方式如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 using System; using

protected权限问题,注意:两个类分别在两个包中

问题描述 protected权限问题,注意:两个类分别在两个包中 public class Son extends Father{ public static void main(String[] args){ Father f = new Father(); Ex4 e = new Ex4(); //!f.method(); e.method(); } } 其中method()方法是Father类下的被protected修饰的方法. 请问: 我难道不能在Son类中建立父类对象并调用父类Prot

w y f-编写一个java程序把两个文件中不同的行输出到一个文件中

问题描述 编写一个java程序把两个文件中不同的行输出到一个文件中 把两个文件中的内容不同的行输出到同一个文件中 代码:文件1:/x /x 46/m /x /x 稍/d 等/v 我/r 现在/t 去/v 写/v 上/vq 下/m?? 啊/y 去/v 协商/v 下/m 好的/l 亲爱的/n ,/w 当时/t 这个/r 图片/n 应用/v 的/u 地方/n 特别/d 多/a ,/w 就/d 像/v 全/a 用途/n 一样/u ./w 所以/c 还/d 挺/d 麻烦/a ,/w 等/v 我们/r 副总

link中不能定义构造函数的返回值?为什么构造函数没有返回值?

问题描述 link中不能定义构造函数的返回值?为什么构造函数没有返回值? link中不能定义构造函数的返回值?为什么构造函数没有返回值? 解决方案 构造函数只能返回这个类的实例,不能返回别的,所以不需要也不能定义返回值. 在IL层面,它对应一个叫ctor的函数.

PHP中mysqli_affected_rows作用行数返回值分析_php技巧

本文实例分析了PHP中mysqli_affected_rows作用行数返回值.分享给大家供大家参考.具体分析如下: mysqli中关于update操作影响的行数可以有两种返回形式: 1. 返回匹配的行数 2. 返回影响的行数 默认情况下mysqli_affected_rows返回的值为影响的行数,如果我们需要返回匹配的行数,可以使用mysqli_real_connect函数进行数据库连接的初始化,并在函数的flag参数位加上: MYSQLI_CLIENT_FOUND_ROWS return nu

ajax中eval()解析函数(json反馈值)函数字符串解析 报错问题

ajax中eval()解析函数(json反馈值)函数字符串解析 报错问题 在一个ajax效果实现的时候,火狐报错,内容意思大概是"函数字符串解析错误",于是用alert(),发现 var result = eval(xmlhttp.responseText); 这句eval函数报错,xmlhttp.responseText可以正常弹出,但只要是eval函数一解析,就会报错,并且不显示数据:蛋疼的我只好在一般处理程序中开始设置断点,查询错误,不知道原因的我一开始就将问题锁定在了反馈值这上

ASP中获得Select Count语句返回值的方法

  这篇文章主要介绍了ASP中获得Select Count语句返回值的方法,一般用在统计数据时使用Select Count语句,以此一获得查询到的行数,需要的朋友可以参考下 我们一般统计数据库记录时会用到Select Count(*)语句,当我们使用SQL Server的查询分析器时,直接输入Select Count(*) From 表名即会统计出该表中有几条记录,可是我们用ASP来实现时该怎么返回值呢?即如何输出统计出来的记录总数呢?请接着往下看. 其实我们只要给SQL语句的查询结果取个别名即

php定义一个参数带有默认值的函数实例分析

 这篇文章主要介绍了php定义一个参数带有默认值的函数,实例分析了php参数带有默认值的函数使用技巧,需要的朋友可以参考下     本文实例分析了php定义一个参数带有默认值的函数用法.分享给大家供大家参考.具体分析如下: php的函数参数可以指定默认值,指定默认值后,调用时如果不给该参数赋值,则该参数就使用默认值 ? 1 2 3 4 5 6 7 8 9 10 11 <?php function capitalize( $str, $each=TRUE ) { $str = strtolower