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


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

面试题 相关文章推荐
介绍下Java的输入输出流
Jan 22 面试题
空字符串(“”)和null的区别
Nov 13 面试题
c/c++某大公司的两道笔试题
Feb 02 面试题
"序列点" 是什么
Jul 29 面试题
请解释接口的显式实现有什么意义
May 26 面试题
sort命令的作用和用法
Nov 04 面试题
LINUX下线程,GDI类的解释
Dec 14 面试题
什么是GWT的Module
Jan 20 面试题
String s = new String(“xyz”);创建了几个String Object?
Aug 05 面试题
垃圾回收的优点和原理
May 16 面试题
介绍一些UNIX常用简单命令
Nov 11 面试题
介绍一下Ruby的多线程处理
Feb 01 面试题
抽象类和接口的区别
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
其他功能
2006/10/09 PHP
php中判断文件存在是用file_exists还是is_file的整理
2012/09/12 PHP
关于crontab的使用详解
2013/06/24 PHP
详解关于php的xdebug配置(编辑器vscode)
2019/01/29 PHP
基于Laravel 多个中间件的执行顺序详解
2019/10/21 PHP
PHP7修改的函数
2021/03/09 PHP
基于jquery的button默认enter事件(回车事件)。
2011/05/18 Javascript
文本框根据输入内容自适应高度的代码
2011/10/24 Javascript
jquery入门必备的基本认识及实例(整理)
2013/06/24 Javascript
JavaScript回调(callback)函数概念自我理解及示例
2013/07/04 Javascript
javascript中的作用域和上下文使用简要概述
2013/12/05 Javascript
javascript分页代码实例分享(js分页)
2013/12/13 Javascript
javascript 分号总结及详细介绍
2016/09/24 Javascript
微信JSAPI支付操作需要注意的细节
2017/01/10 Javascript
详解基于vue-cli配置移动端自适应
2018/01/13 Javascript
JS 实现微信扫一扫功能
2018/09/14 Javascript
vue父组件给子组件的组件传值provide inject的方法
2019/10/23 Javascript
JS实现购物车基本功能
2020/11/08 Javascript
python使用线程封装的一个简单定时器类实例
2015/05/16 Python
python实现用于测试网站访问速率的方法
2015/05/26 Python
python中abs&map&reduce简介
2018/02/20 Python
高效使用Python字典的清单
2018/04/04 Python
浅谈django三种缓存模式的使用及注意点
2018/09/30 Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
2019/02/22 Python
python实现两个文件夹的同步
2019/08/29 Python
pymysql模块的操作实例
2019/12/17 Python
python3连接MySQL8.0的两种方式
2020/02/17 Python
基于python检查SSL证书到期情况代码实例
2020/04/04 Python
Python selenium自动化测试模型图解
2020/04/15 Python
十一个高级MySql面试题
2014/10/06 面试题
酒店七夕情人节活动策划方案
2014/08/24 职场文书
2014新生大学四年计划书
2014/09/21 职场文书
SQL Server中交叉联接的用法详解
2021/04/22 SQL Server
Django一小时写出账号密码管理系统
2021/04/29 Python
面试中老生常谈的MySQL问答集锦夯实基础
2022/03/13 MySQL
Ruby序列化和持久化存储 Marshal和Pstore介绍
2022/04/18 Ruby