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


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

面试题 相关文章推荐
SQL中where和having的区别
Jun 17 面试题
异常和异常类的概念
Sep 12 面试题
如何找出EMP表里面SALARY第N高的employee
Dec 05 面试题
请解释流与文件有什么不同
Jul 29 面试题
什么是TCP/IP
Jul 27 面试题
.TTL是什么?有什么用处,通常那些工具会用到它?(ping? traceroute? ifconfig? netstat?)
May 09 面试题
什么是三层交换,说说和路由的区别在那里
Sep 01 面试题
Shell编程面试题
May 30 面试题
用Python写一个for循环的例子
Jul 19 面试题
sleep()方法和wait()方法的区别是什么
Nov 17 面试题
Java面试题汇总
Dec 06 面试题
Tomcat的缺省是多少,怎么修改
Apr 09 面试题
抽象类和接口的区别
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&&mysql)二
2006/10/09 PHP
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
2014/04/24 PHP
php实现的debug log日志操作类实例
2016/07/12 PHP
2017年最新PHP经典面试题目汇总(上篇)
2017/03/17 PHP
Laravel框架实现利用中间件进行操作日志记录功能
2018/06/06 PHP
SlideView 图片滑动(扩展/收缩)展示效果
2010/08/01 Javascript
调用jQuery滑出效果时闪烁的解决方法
2014/03/27 Javascript
jquery数组过滤筛选方法grep()简介
2014/06/06 Javascript
20个实用的JavaScript技巧分享
2014/11/28 Javascript
JavaScript里四舍五入函数round用法实例
2015/04/06 Javascript
JS实现的5级联动Select下拉选择框实例
2015/08/17 Javascript
关于iframe跨域POST提交的方法示例
2017/01/15 Javascript
JavaScript纯色二维码变成彩色二维码
2020/07/23 Javascript
详解angularjs的数组传参方式的简单实现
2017/07/28 Javascript
详解vue-cli脚手架build目录中的dev-server.js配置文件
2017/11/24 Javascript
vue单文件组件lint error自动fix与styleLint报错自动fix详解
2019/01/08 Javascript
angularjs1.X 重构controller 的方法小结
2019/08/15 Javascript
JavaScript函数IIFE使用详解
2019/10/21 Javascript
Vue组件间的通信pubsub-js实现步骤解析
2020/03/11 Javascript
用python的requests第三方模块抓取王者荣耀所有英雄的皮肤实例
2017/12/14 Python
Django实现发送邮件找回密码功能
2019/08/12 Python
Django实现随机图形验证码的示例
2020/10/15 Python
瑞典的玛丽小姐:Miss Mary of Sweden
2019/02/13 全球购物
JavaScript实现前端网页版倒计时
2021/03/24 Javascript
汉语专业应届生求职信
2013/10/01 职场文书
师范学院毕业生求职信范文
2013/12/26 职场文书
学生实习证明范文
2014/09/28 职场文书
2014年宣传部个人工作总结
2014/12/06 职场文书
2015教师个人工作总结范文
2015/03/31 职场文书
nginx对http请求处理的各个阶段详析
2021/03/31 Servers
Win11如何修改dns?Win11修改dns图文教程
2022/01/18 数码科技
SQL解决未能删除约束问题drop constraint
2022/05/30 SQL Server
Java中生成微信小程序太阳码的实现方案
2022/06/01 Java/Android
移除Selenium中window.navigator.webdriver值
2022/06/10 Python
mysqldump进行数据备份详解
2022/07/15 MySQL
详解CSS中postion和opacity及cursor的特性
2022/08/14 HTML / CSS