【学东学西#1】C#接口Interface
文章目录
- 一,接口是什么
- 二,接口做了什么
- 三,为什么需要接口
- 四,接口的使用
- 1,接口的创建
- 2,接口的继承
- 3,接口的实现
- 1)继承一个接口并实现
- 2)继承多个接口并实现
- 3) 显式接口成员实现
一,接口是什么
首先给出一个普通接口的例子:
interface ICooking
{void Cook();
}
上面定义了一个叫ICooking的接口,其中只包含了一个名为Cook()的方法,该方法的返回值类型为void。
总的来说,形如:interface ... {...}的,就是C#中的接口。
二,接口做了什么
接口定义了可以被类(classes)和结构(structs)实现的合同。
接口可以包含:方法(methods)、属性(properties)、事件(events)、索引器(indexers)。
接口不提供 其成员的定义,它只负责对成员的声明。
三,为什么需要接口
接口的主要作用:1,实现‘功能的需求’和‘功能的实现’的分离;2,提高一层抽象,让使用者能忽略底层细节去使用功能。
通过接口设计出你想要实现的功能,然后再后续的类或结构中实现,能让开发进行得井井有条。同时,接口中的方法必须尽数实现,这也避免了方法的遗漏,确保了对‘功能的需求’的完全满足。
四,接口的使用
1,接口的创建
interface 你的接口名
{接口的成员;
}
按照上面的语法,将中文替换成对应的东西,你就获得了一个接口。
2,接口的继承
interface 父母接口
{父母接口的成员;
}
interface 子女接口 : 父母接口
{子女接口的成员;
}
按照上面的语法,你获得了两个接口,其中第二个接口继承了第一个接口。
3,接口的实现
1)继承一个接口并实现
interface IGreetings
{void SayHi();
}
class Tom : IGreetings
{public void SayHi(){//Do something}
}
以上定义了一个叫IGreetings的接口。该接口包含了一个SayHi()方法,这个方法在接口的子类Tom中被实现了。
2)继承多个接口并实现
interface Interface1
{void Method1();
}
interface Interface2
{void Method2();
}
class Implementer: Interface1, Interface2
{public void Method1() {}public void Method2() {}
}
以上定义了两个接口,分别叫Interface1和Interface2。类Implementer同时继承了两个接口,故该类必须实现Interface1和Interface2的所有方法。
3) 显式接口成员实现
在上面的接口实现中,接口的方法们都是用接口子类的公共成员(public member)实现的。在C#中,我们也可以使用显示接口成员实现(explicit interface member implementation)来避免让子类的成员变得公共。
//承接上例
class Implementer2: Interface1, Interface2
{void Interface1.Method1() {}void Interface2.Method2() {}
}
显示接口成员实现的做法就是仿照上面的例子,使用完整的接口成员名。
显示接口成员只能通过对应的接口类型才能访问到。比如:
//承接上例
Implementer2 x = new Implementer2();
x.Method1(); //报错,没有Method1
Interface1 y = x;
y.Method1(); //可行
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
