Interface/接口
Posted HepburnXiao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Interface/接口相关的知识,希望对你有一定的参考价值。
1. 类和结构能够实现接口
2. 接口声明包含如下四种类型:属性、方法、事件和索引;这些函数声明不能包含任何实现代码,而在每一个成员的主体后必须使用分号
3. 继承接口的类或结构必须实现接口中的所有成员
4. 显示接口的实现注意下面的代码
class Program { static void Main(string[] args) { SampleClass_1 sc = new SampleClass_1(); IControl ctr1 = (IControl)sc; ISurface srfc = (ISurface)sc; // 调用一样的方法,继承 sc.Paint(); ctr1.Paint(); srfc.Paint(); Console.WriteLine(); //显式接口实现 SampleClass_2 obj = new SampleClass_2(); IControl c = (IControl)obj; ISurface s = (ISurface)obj; obj.Paint(); c.Paint(); s.Paint(); Console.ReadKey(); } } public interface IControl // 接口可以有访问修饰符 { void Paint(); //成员不允许有任何访问修饰符,默认public int P { get; } } public interface ISurface { void Paint(); } class SampleClass_1:IControl,ISurface { //IControl.Paint和ISurface.Paint都会调用这个方法 public void Paint() { Console.WriteLine("Paint method in SampleClass"); } private int _value=10; public int P { get { return _value; } set { _value = value; } //可以添加set访问器 } } class SampleClass_2:IControl ,ISurface { //显式接口实现 void IControl.Paint() //这时候不能加访问修饰符public, 要完全和接口定义一致 { Console.WriteLine("IControl.Paint"); } void ISurface.Paint() { Console.WriteLine("ISurface.Paint"); } public void Paint() { Console.WriteLine("SampleClass_2.Paint"); } private int _value=10; int IControl.P { get { return _value; } //set { }显式接口必须和接口定义完全一致,不能任意添加set访问器 } }
以上是关于Interface/接口的主要内容,如果未能解决你的问题,请参考以下文章