一个类如何实现两个接口中同名同参数不同返回值的函数
2013-09-10 14:19
381 查看
假设有如下两个接口:
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");
}
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");
}
相关文章推荐
- 一个类如何实现两个接口中同名同参数不同返回值的函数
- 一个类所实现的两个不同的接口中,有同名的方法,怎么知道实现的是哪个接口中的方法
- 创建一个数组, 实现函数init()初始化数组、 实现empty()清空数组、 实现reverse()函数完成数组元素的逆置。 要求:自己设计函数的参数,返回值。
- Java类加载机制——如何实现一个工程中不同模块加载不同版本的同名jar包。
- //创建一个数组, //实现函数init()初始化数组、 //实现empty()清空数组、 //实现reverse()函数完成数组元素的逆置。 //要求:自己设计函数的参数,返回值。
- 创建一个数组, 实现函数init()初始化数组、 实现reverse()函数完成数组元素的逆置,实现empty()清空数组。要求:自己设计函数的参数,返回值。
- 写4个同名方法,实现两个整数、两个实数,一个实数一个整数,一个整数一个实数之间的求和。在主调函数中调用这4个方法计算相关的值。(方法的重载)
- //4.创建一个数组, //实现函数init()初始化数组、 //实现empty()清空数组、 //实现reverse()函数完成数组元素的逆置。 //要求:自己设计函数的参数,返回值。
- 实现一个数值加法函数,返回两个数字的和。要求能进行参数验证,若参数不是数字或为空则抛出异常。
- 1.写一个函数返回参数二进制中 1 的个数;2..获取一个数二进制序列中所有的偶数位和奇数位;3. 输出一个整数的每一位;4.两个int整数的二进制表达中,有多少个位不同
- 详解如何实现定义一个参数个数可变的函数
- 用C语言编写函数实现一个整数计算机,程序接受三个参数,第一个参数为操作项,后两个参数为操作数。
- 创建一个数组, 实现函数init()初始化数组、 实现empty()清空数组、 实现reverse()函数完成数组元素的逆置。 要求:自己设计函数的参数,返回值。
- 创建一个数组, 实现函数init()初始化数组、 实现empty()清空数组、 实现reverse()函数完成数组元素的逆置。 要求:自己设计函数的参数,返回值。
- 创建一个数组, 实现函数init()初始化数组、 实现empty()清空数组、 实现reverse()函数完成数组元素的逆置。自己设计函数的参数,返回值。
- C#--如何在一个函数中返回两个值(包含数组的参数)
- 用C语言编写函数实现一个整数计算机,程序接受三个参数,第一个参数为操作项,后两个参数为操作数。
- 模块化思想:创建一个数组, 实现函数init()初始化数组、 实现empty()清空数组、 实现reverse()函数完成数组元素的逆置。 要求:自己设计函数的参数,返回值。
- MyEclipse中,当我们写一个类实现一个接口时,会自动生成重写该接口的方法,但是,方法的参数提示不够好,是什么原因导致的呢?该如何解决呢?
- 实现函数 functionFunction,调用之后满足如下条件: 1、返回值为一个函数 f 2、调用返回的函数 f,返回值为按照调用顺序的参数拼接,拼接字符为英文逗号加一个空格,即 ', ' 3、所