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


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...

面试题 相关文章推荐
开发中都用到了那些设计模式?用在什么场合?
Aug 21 面试题
广州御银科技股份有限公司试卷(C++)
Nov 04 面试题
C++:局部变量能否和全局变量重名
Mar 03 面试题
字符串str除首尾字符外的其他字符按升序排列
Mar 08 面试题
Android面试宝典
Aug 06 面试题
什么是事务?事务有哪些性质?
Mar 11 面试题
标记环网Toke Ring IEEE802.5
May 26 面试题
C#中有没有运算符重载?能否使用指针?
May 05 面试题
简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
Apr 17 面试题
简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
Jan 06 面试题
百度JavaScript笔试题
Jan 15 面试题
如何用JQuery进行表单验证
May 29 面试题
抽象类和接口的区别
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导出oracle库的php代码
2009/04/20 PHP
php发送邮件的问题详解
2015/06/22 PHP
php微信开发之自定义菜单实现
2016/11/18 PHP
js parseInt("08")未指定进位制问题
2010/06/19 Javascript
JQuery 中几个类选择器的简单使用介绍
2013/03/14 Javascript
javascript 10进制和62进制的相互转换
2014/07/31 Javascript
基于jquery和svg实现超炫酷的动画特效
2014/12/09 Javascript
webpack开发跨域问题解决办法
2017/08/03 Javascript
vue的传参方式汇总和router使用技巧
2018/05/22 Javascript
vue实现的微信机器人聊天功能案例【附源码下载】
2019/02/18 Javascript
《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析
2020/04/08 Javascript
如何使用three.js 制作一个三维的推箱子游戏
2020/07/29 Javascript
[03:22]DAC最前线(第二期)—DOTA2亚洲邀请赛主赛场周边及线路探访
2015/01/24 DOTA
Python中的二叉树查找算法模块使用指南
2014/07/04 Python
Python读取ini文件、操作mysql、发送邮件实例
2015/01/01 Python
利用Python和OpenCV库将URL转换为OpenCV格式的方法
2015/03/27 Python
python使用PIL模块实现给图片打水印的方法
2015/05/22 Python
分享Python开发中要注意的十个小贴士
2016/08/30 Python
Python图像处理之识别图像中的文字(实例讲解)
2018/05/10 Python
基于 Django 的手机管理系统实现过程详解
2019/08/16 Python
pandas-resample按时间聚合实例
2019/12/27 Python
使用Tensorflow实现可视化中间层和卷积层
2020/01/24 Python
python如何进入交互模式
2020/07/06 Python
Dyson加拿大官方网站:购买戴森吸尘器,风扇,冷热器及配件
2016/10/26 全球购物
稀有和绝版书籍:Biblio.com
2017/02/02 全球购物
Pedro官网:新加坡时尚品牌
2019/08/27 全球购物
营业员实习自我鉴定
2013/12/07 职场文书
《金子》教学反思
2014/04/13 职场文书
寒假家长评语大全
2014/04/16 职场文书
暖通工程师岗位职责
2014/06/12 职场文书
装修活动策划方案
2014/08/27 职场文书
2014年项目经理工作总结
2014/11/24 职场文书
继续教育个人总结
2015/03/03 职场文书
广告公司文案策划岗位职责
2015/04/14 职场文书
Python Django模型详解
2021/10/05 Python
SSM项目使用拦截器实现登录验证功能
2022/01/22 Java/Android