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

2023-07-06   


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


相关内容:

  1. java面试经验
  2. C#的几个面试问题
  3. C#基础面试题
  4. Java的接口和C++的虚类的相同和不同处
  5. 为什么使用接口?
  6. 结构和类有什么异同