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

简介:
假设有如下两个接口:
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");
    }

目录
相关文章
|
API 图形学
Unity设置播放模式下始终先执行指定的场景
通过我们使用Unity开发游戏,是在PC/Mac上。而一个游戏通常也会有很多的场景,比如A、B、C、D三个场景,正常流程下的执行顺序是 A –> B –> C –> D。在具体一点,比如 A —— 启动场景、B —— 资源加载场景、C —— 登录场景、D —— 战斗场景。
1996 0
|
SQL Java 数据库连接
Mybatis之discriminator(鉴别器)详解
前言 最近干了一个工作是使用discriminator去写一个新的API,那么写这个新的API原因是什么呢?原因是这样的:我们的项目使用Mybatis,我们项目中有一个实体类叫做User,在User中还含有很多别的实体类,例如Role,Permission,Address等(有经验的肯定知道这种嵌套实体类的情况,使用和)。
4315 0
|
10月前
|
API 开发者 UED
鸿蒙next版开发:ArkTS组件通用属性(形状裁剪)
在HarmonyOS 5.0中,ArkTS引入了形状裁剪的通用属性,支持矩形、圆形、椭圆及自定义路径等多种形状的裁剪和遮罩处理。本文详细解读了clip、clipShape、mask和maskShape属性,并提供了示例代码,帮助开发者实现多样化的界面设计和动画效果。
613 1
|
11月前
|
SQL Java 数据库连接
Mybatis入门(select标签)
这篇文章介绍了Mybatis中`select`标签的基本用法及其相关属性,并通过示例展示了如何配置和执行SQL查询语句。
220 0
Mybatis入门(select标签)
|
存储 缓存 资源调度
你真的知道 NPM、Yarn 与 PNPM 这三个前端包管理器之间的区别吗?
【6月更文挑战第9天】NPM、Yarn和PNPM是主流前端包管理器,各有特色。NPM生态庞大,易用但速度慢;Yarn速度快,依赖管理稳定;PNPM性能优异,节省磁盘空间。Yarn和PNPM在速度和确定性上胜出,NPM因广泛使用和丰富资源领先。开发者可根据项目需求和喜好选择,三者共同推动前端开发进步。
363 8
this.$router.push点了后hash地址改变了,页面却不跳转
this.$router.push点了后hash地址改变了,页面却不跳转
|
机器学习/深度学习 存储 算法
基于多模态融合与图神经网络的用户精准感知系统研究
基于多模态融合与图神经网络的用户精准感知系统研究
731 0
|
存储 缓存 资源调度
三巨头对决:深入了解pnpm、yarn与npm
三巨头对决:深入了解pnpm、yarn与npm
1217 0
|
SQL 安全 Linux
搭建网络安全靶场环境
搭建靶场环境 我们将通过Docker来搭建靶场 首先我们需要下载Centos7来安装Docker,下载链接https://mirrors.ustc.edu.cn/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso 下载完成后创建虚拟机 版本选择centos7(64位)
1317 0
搭建网络安全靶场环境
|
Web App开发 JavaScript 前端开发
[译]2023年 Web Component 现状
[译]2023年 Web Component 现状
317 0