接口的多继承会带来哪些问题


Posted in 面试题 onAugust 17, 2015
C#中的接口与类不同,可以使用多继承,即一个子接口可以有多个父接口。但如果两个父成员具有同名的成员,就产生了二义性(这也正是 C# 中类取消了多继承的原因之一),这时在实现时最好使用显式的声明
示例:
using System;
using System.Collections.Generic;
using System.Text;
namespace Example17
{
class Program
{
//一个完整的接口声明示例
interface IExample
{
//属性
string P
{
get;
set;
}
//方法
string F(int Value);
//事件
event EventHandler E;
//索引指示器
string this[int Index]
{
get;
set;
}
}
interface IA
{
int Count { get; set;}
}
interface IB
{
int Count();
}
//IC接口从IA和IB多重继承
interface IC : IA, IB
{
}
class C : IC
{
private int count = 100;
//显式声明实现IA接口中的Count属性
int IA.Count
{
get { return 100; }
set { count = value; }
}
//显式声明实现IB接口中的Count方法
int IB.Count()
{
return count * count;
}
}
static void Main(string[] args)
{
C tmpObj = new C();
//调用时也要显式转换
Console.WriteLine(“Count property: {0}”, ((IA)tmpObj).Count);
Console.WriteLine(“Count function: {0}”, ((IB)tmpObj).Count());
Console.ReadLine();
}
}
}
结果:
Count property: 100
Count function: 10000

Tags in this post...

面试题 相关文章推荐
PHP如何与mysql建立链接
May 05 面试题
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类
Feb 06 面试题
介绍一下Java中的Class类
Apr 10 面试题
统计每一学生的平均成绩
Jun 06 面试题
what is the difference between ext2 and ext3
Aug 25 面试题
进程的查看和调度分别使用什么命令
Mar 25 面试题
remote接口和home接口主要作用
May 15 面试题
JPA的特点
Oct 25 面试题
百度JavaScript笔试题
Jan 15 面试题
几个MySql的面试题
Apr 22 面试题
介绍一下Java中的static关键字
May 12 面试题
九州传奇上机题
Jul 10 面试题
抽象类和接口的区别
Sep 19 #面试题
北京某科技有限公司C# .net笔试题
Sep 27 #面试题
用C#语言写出与SQLSERVER访问时的具体过程
Apr 16 #面试题
用C#语言写出在本地创建一个UDP接收端口的具体过程
Feb 22 #面试题
别名指示符是什么
Oct 08 #面试题
C#实现对任一张表的数据进行增,删,改,查要求,运用Webservice,体现出三层架构
Jul 11 #面试题
如何手工释放资源
Dec 15 #面试题
You might like
PHP扩展模块Pecl、Pear以及Perl的区别
2014/04/09 PHP
php操作redis中的hash和zset类型数据的方法和代码例子
2014/07/05 PHP
thinkPHP模板中for循环与switch语句用法示例
2016/11/30 PHP
JavaScript高级程序设计 阅读笔记(十二) js内置对象Math
2012/08/14 Javascript
在Javascript中 声明时用"var"与不用"var"的区别
2013/04/15 Javascript
jQuery遍历json的方法(推荐)
2016/06/12 Javascript
特殊日期提示功能的实现方法
2016/06/16 Javascript
HTML5+jQuery实现搜索智能匹配功能
2017/03/24 jQuery
分享19个JavaScript 有用的简写写法
2017/07/07 Javascript
荐书|您有一份JavaScript书单待签收
2017/07/21 Javascript
JavaScript 中使用 Generator的方法
2017/12/29 Javascript
vue基于mint-ui实现城市选择三级联动
2020/06/30 Javascript
iconfont的三种使用方式详解
2018/08/05 Javascript
微信小程序如何获取用户收货地址
2018/11/27 Javascript
js中实例与对象的区别讲解
2019/01/21 Javascript
微信小程序加载机制及运行机制图解
2019/11/27 Javascript
jquery实现垂直手风琴菜单
2020/03/04 jQuery
Vue3配置axios跨域实现过程解析
2020/11/25 Vue.js
[01:02:54]完美世界DOTA2联赛PWL S2 FTD vs GXR 第一场 11.22
2020/11/26 DOTA
python中将字典转换成其json字符串
2014/07/16 Python
Django如何实现内容缓存示例详解
2017/09/24 Python
Python实现字典按照value进行排序的方法分析
2017/12/23 Python
Flask之flask-script模块使用
2018/07/26 Python
Python实现去除图片中指定颜色的像素功能示例
2019/04/13 Python
tensorflow 报错unitialized value的解决方法
2020/02/06 Python
在python中求分布函数相关的包实例
2020/04/15 Python
Manjaro、pip、conda更换国内源的方法
2020/11/17 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
澳大利亚排名第一的在线酒类商店:MyBottleShop
2018/04/26 全球购物
德国高尔夫商店:Golfshop.de
2019/06/22 全球购物
自我推荐书
2013/12/04 职场文书
安全生产计划书
2014/05/04 职场文书
优秀班主任经验交流材料
2014/06/02 职场文书
2015年数学教师工作总结
2015/05/20 职场文书
CSS3 天气图标动画效果
2021/04/06 HTML / CSS
Go gRPC进阶教程gRPC转换HTTP
2022/06/16 Golang