C# 显示接口和隐式接口
来源:互联网 发布:入门单反推荐2017知乎 编辑:程序博客网 时间:2024/04/19 06:53
C#显示接口和隐式接口
ITest.cs
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace testInterface{ public interface IA { void TestA(); void Test(); } /// <summary> /// 接口B继承接口A 实现接口B 需要实现接口A和接口B的所有方法 /// </summary> public interface IB : IA { void TestB(); //接口B继承接口A 接口A中已经有Test方法 接口B 必须实现 但是接口B想有一个自己的Test方法 需要使用关键字new(不然异常) new void Test(); }; /// <summary> /// 接口C继承接口A 实现接口C 需要实现接口A和接口C的所有方法 /// </summary> public interface IC : IA { void TestC(); new void Test(); }; /// <summary> /// 接口D继承接口B和接口C 实现接口D 需要实现接口D,B,C以及接口B,C的基接口 的所有方法(即 ABCD所有接口中的方法都要实现) /// </summary> public interface ID : IB, IC { void TestD(); new void Test(); };}
Program.cs
//-----------------------------------------------------------------------// <copyright file="Program.cs" company="XXXX">// Copyright (c) 2016 . All rights reserved.// </copyright>// <contact> Dong </contact>//-----------------------------------------------------------------------using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace testInterface{ public class A : IA { //隐式接口要用关键字 public 不然报错 public void TestA() { Console.WriteLine(" IN CLASS A TestA"); } public void Test() { Console.WriteLine(" IN CLASS A Test"); } } public class B : IB { public void TestA() { Console.WriteLine(" IN CLASS B TestA"); } public void TestB() { Console.WriteLine(" IN CLASS B TestB"); } //显示实现接口不用关键字public 不然报错 void IA.Test() { Console.WriteLine(" IN CLASS B IA.Test"); } void IB.Test() { Console.WriteLine(" IN CLASS B IB.Test"); } } public class C : IC { public void TestA() { Console.WriteLine(" IN CLASS C TestA"); } public void TestC() { Console.WriteLine(" IN CLASS C TestC"); } void IA.Test() { Console.WriteLine(" IN CLASS C IA.Test"); } void IC.Test() { Console.WriteLine(" IN CLASS C IC.Test"); } } public class D : ID { public void TestA() { Console.WriteLine(" IN CLASS D TestA"); } public void TestB() { Console.WriteLine(" IN CLASS D TestB"); } public void TestC() { Console.WriteLine(" IN CLASS D TestC"); } public void TestD() { Console.WriteLine(" IN CLASS D TestD"); } void IA.Test() { Console.WriteLine(" IN CLASS D IA.Test"); } void IB.Test() { Console.WriteLine(" IN CLASS D IB.Test"); } void IC.Test() { Console.WriteLine(" IN CLASS D IC.Test"); } void ID.Test() { Console.WriteLine(" IN CLASS D ID.Test"); } } public class Program { static void Main() { A a = new A(); a.TestA(); B b = new B(); b.TestA(); b.TestB(); C c = new C(); c.TestA(); c.TestC(); D d = new D(); d.TestA(); d.TestB(); d.TestC(); d.TestD(); Console.WriteLine("-------------------------------------"); a.Test(); //由于B中显示继承了两个Test() 使用的时候需要强制转换B类对象为相应的接口 ((IA)b).Test(); ((IB)b).Test(); ((IA)c).Test(); ((IC)c).Test(); ((IA)d).Test(); ((IB)d).Test(); ((IC)d).Test(); ((ID)d).Test(); Console.WriteLine("-------------------------------------"); IA iaa = new A(); IA iab = new B(); IA iac = new C(); IA iad = new D(); iaa.Test(); iab.Test(); iac.Test(); iad.Test(); IB ibb = new B(); IB ibd = new D(); ibb.Test(); ibd.Test(); IC icb = new C(); IC icd = new D(); icb.Test(); icd.Test(); ID idd = new D(); idd.Test(); } } }
IN CLASS A TestA IN CLASS B TestA IN CLASS B TestB IN CLASS C TestA IN CLASS C TestC IN CLASS D TestA IN CLASS D TestB IN CLASS D TestC IN CLASS D TestD------------------------------------- IN CLASS A Test IN CLASS B IA.Test IN CLASS B IB.Test IN CLASS C IA.Test IN CLASS C IC.Test IN CLASS D IA.Test IN CLASS D IB.Test IN CLASS D IC.Test IN CLASS D ID.Test------------------------------------- IN CLASS A Test IN CLASS B IA.Test IN CLASS C IA.Test IN CLASS D IA.Test IN CLASS B IB.Test IN CLASS D IB.Test IN CLASS C IC.Test IN CLASS D IC.Test IN CLASS D ID.Test请按任意键继续. . .
0 0
- C# 显示接口和隐式接口
- C# 隐式接口和显示接口的区别
- C#中,接口的隐式实现和显示实现
- C#接口的显示实现和隐式实现
- C# 中 显示实现接口 与 隐式实现接口
- C#接口的显示与隐式
- C# 接口,显示实现接口
- C#的显式接口和隐式接口
- C#的显式接口和隐式接口
- C#的显式接口和隐式接口
- C#显式接口实现和隐式接口实现
- C# 接口的显示实现和隐示实现
- 接口的隐式和显示实现
- C#接口的隐式和显示调用,区别和实例
- C#接口的隐式和显示调用,区别和实例
- C#接口显示实现
- c# 接口的显示实现和隐式实现的区别
- C#接口-显式接口和隐式接口的实现
- Cocosd2d-js 使用Cocos Studio生成的Json界面文件
- Activity的四种launchMode
- 发短信
- c++使用rapidxml读取cocos2dx的配置文件
- FJNU/大二下/javascript/事件处理
- C# 显示接口和隐式接口
- Android知识梳理之自定义ViewGroup
- csharp 反编译
- 目标跟踪 详细博文
- 框架的理解
- Android开发:集成dropbox网盘功能
- AJAX POST&跨域 解决方案 - CORS
- 图像处理 源代码
- Memcached 集群的高可用(HA)架构