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


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中如何创建和修改数组
May 02 面试题
将一个文本文件的内容按倒序打印出来
Jan 05 面试题
写一个在SQL Server创建表的SQL语句
Mar 10 面试题
.NET是怎么支持多种语言的
Feb 24 面试题
XML文档面试题
Aug 05 面试题
西安启天科技有限公司网络工程师面试题笔试题
Jun 12 面试题
几个Shell Script面试题
Aug 31 面试题
一套软件测试笔试题
Jul 25 面试题
亿企通软件测试面试题
Apr 10 面试题
AJAX都有哪些有点和缺点
Nov 03 面试题
Servlet如何得到客户端机器的信息
Oct 17 面试题
Java servlet面试题
Mar 04 面试题
抽象类和接口的区别
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
Thinkphp页面跳转设置跳转等待时间的操作
2019/10/16 PHP
js实现数组去重、判断数组以及对象中的内容是否相同
2013/11/29 Javascript
javascript操作excel生成报表示例
2014/05/08 Javascript
jQuery实现带动画效果的多级下拉菜单代码
2015/09/08 Javascript
jquery判断复选框是否选中进行答题提示特效
2015/12/10 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
2015/12/17 Javascript
js+css实现select的美化效果
2016/03/24 Javascript
详解Node.js如何开发命令行工具
2016/08/14 Javascript
浅谈jquery上下滑动的注意事项
2016/10/13 Javascript
AngularJS打开页面隐藏显示表达式用法示例
2016/12/25 Javascript
angularjs实现猜大小功能
2017/10/23 Javascript
npm 常用命令详解(小结)
2019/01/17 Javascript
layui实现图片虚拟路径上传,预览和删除的例子
2019/09/25 Javascript
Python version 2.7 required, which was not found in the registry
2014/08/26 Python
Python实现抓取网页并且解析的实例
2014/09/20 Python
Python中暂存上传图片的方法
2015/02/18 Python
python获取元素在数组中索引号的方法
2015/07/15 Python
学习python类方法与对象方法
2016/03/15 Python
python 拷贝特定后缀名文件,并保留原始目录结构的实例
2018/04/27 Python
django与小程序实现登录验证功能的示例代码
2019/02/19 Python
django修改models重建数据库的操作
2020/03/31 Python
python求numpy中array按列非零元素的平均值案例
2020/06/08 Python
CSS3教程:background-clip和background-origin
2008/10/17 HTML / CSS
CSS3 制作旋转的大风车(充满童年回忆)
2013/01/30 HTML / CSS
如何利用CSS3制作3D效果文字具体实现样式
2013/05/02 HTML / CSS
苹果美国官方商城:Apple美国
2016/08/24 全球购物
PurCotton全棉时代官网:100%天然棉花生产的生活护理用品
2016/11/18 全球购物
Vans荷兰官方网站:美国南加州的原创极限运动潮牌
2018/01/23 全球购物
Ajax主要包含了哪些技术
2014/06/12 面试题
大学生写自荐信的技巧
2014/01/08 职场文书
汽车维修求职信
2014/06/15 职场文书
学校运动会广播稿
2014/10/11 职场文书
总经理岗位职责
2015/02/04 职场文书
坎儿井导游词
2015/02/09 职场文书
八月一日观后感
2015/06/10 职场文书
Android Canvas绘制文字横纵向对齐
2022/06/05 Java/Android