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


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开发的一般流程
Aug 13 面试题
JPA面试常见问题
Nov 14 面试题
static函数与普通函数有什么区别
Dec 25 面试题
strstr()的简单实现
Sep 26 面试题
经典c++面试题二
Aug 14 面试题
武汉英思工程科技有限公司–ORACLE面试测试题目
Apr 30 面试题
DataList 能否分页,请问如何实现?
May 03 面试题
Linux的文件类型
Mar 07 面试题
JAVA中运算符的分类及举例
Sep 12 面试题
代码中finally中的代码会不会执行
Feb 06 面试题
中软国际Java程序员笔试题
Jul 19 面试题
正隆泰信息技术有限公司上机题
Jun 14 面试题
抽象类和接口的区别
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
Protoss热键控制
2020/03/14 星际争霸
Yii实现显示静态页的方法
2016/04/25 PHP
PHP用FTP类上传文件视频等的简单实现方法
2016/09/23 PHP
php基于curl实现随机ip地址抓取内容的方法
2016/10/11 PHP
PHP 500报错的快速解决方法
2016/12/14 PHP
用Javascript实现UTF8编码转换成gb2312编码
2006/12/22 Javascript
jQuery中bind,live,delegate与one方法的用法及区别解析
2013/12/30 Javascript
jQuery仿天猫实现超炫的加入购物车
2015/05/04 Javascript
javascript控制图片播放的实现代码
2020/07/29 Javascript
JS实现单击输入框弹出选择框效果完整实例
2015/12/14 Javascript
JavaScript动态设置div的样式的方法
2015/12/26 Javascript
jquery日历插件datepicker用法分析
2016/01/22 Javascript
举例讲解jQuery中可见性过滤选择器的使用
2016/04/18 Javascript
JavaScript实战(原生range和自定义特效)简单实例
2016/08/21 Javascript
js实现字符全排列算法的简单方法
2017/05/01 Javascript
快速将Vue项目升级到webpack3的方法步骤
2017/09/14 Javascript
基于nodejs实现微信支付功能
2017/12/20 NodeJs
js经验分享 JavaScript反调试技巧
2018/03/10 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
js实现适配移动端的拖动效果
2020/01/13 Javascript
RxJS在TypeScript中的简单使用详解
2020/04/13 Javascript
python函数缺省值与引用学习笔记分享
2013/02/10 Python
python实现的udp协议Server和Client代码实例
2014/06/04 Python
利用python获取某年中每个月的第一天和最后一天
2016/12/15 Python
python 用lambda函数替换for循环的方法
2018/06/09 Python
Python中logging.NullHandler 的使用教程
2018/11/29 Python
Scrapy框架爬取Boss直聘网Python职位信息的源码
2019/02/22 Python
Django接收照片储存文件的实例代码
2020/03/07 Python
Python实现一个简单的毕业生信息管理系统的示例代码
2020/06/08 Python
python3中celery异步框架简单使用+守护进程方式启动
2021/01/20 Python
韩国商务邀请函
2014/01/14 职场文书
接受捐赠答谢词
2014/01/27 职场文书
怎么写自荐书范文
2014/02/12 职场文书
公司管理建议书范文
2014/03/12 职场文书
委托书范本
2014/04/02 职场文书
银行授权委托书格式
2014/10/10 职场文书