C# 接口
2021-01-04 04:28
标签:bsp ons 技术 each 抽象类 rac 特定 load 解决 接口是把公共实例(非静态)方法和属性组合起来,以封装特定功能的一个集合。接口是一种规范,也是一种能力
C# 接口 标签:bsp ons 技术 each 抽象类 rac 特定 load 解决 原文地址:https://www.cnblogs.com/zhaoyl9/p/11611808.html定义:
隐式实现接口
1 class Program
2 {
3 static void Main(string[] args)
4 {
5 IPerson p = new Teacher();
6 p.SayHello();
7
8 Teacher t = new Teacher();
9 t.SayHello();
10
11 Console.ReadKey();
12 }
13 }
14 class Teacher: IPerson
15 {
16 public void SayHello()
17 {
18 Console.WriteLine("Hello World!");
19 }
20 }
21
22 interface IPerson
23 {
24 void SayHello();
25 }
显示实现接口,目的:解决方法的重名问题
1 class Program
2 {
3 static void Main(string[] args)
4 {
5 IPerson p = new Teacher();
6 p.SayHello();
7
8 Console.ReadKey();
9 }
10 }
11 class Teacher: IPerson
12 {
13 void IPerson.SayHello()
14 {
15 Console.WriteLine("Hello World!");
16 }
17 }
18
19 interface IPerson
20 {
21 void SayHello();
22 }
隐式实现接口:可以用接口声明,也可以用实现类Teacher声明,调用者都可以得到实例化对象的行为SayHello;显示接口实现:SayHello方法只能通过接口来调用
隐式实现接口时,Teacher有而且必须有自己的访问修饰符(public)
显式实现接口时,Teacher不能有任何访问修饰符
当一个抽象类实现接口时,需要子类去实现接口
1 class Program
2 {
3 static void Main(string[] args)
4 {
5 IPerson p = new TeacherSon();
6 p.SayHello();
7
8 Console.ReadKey();
9 }
10 }
11 abstract class Teacher : IPerson
12 {
13 public void SayHello()
14 {
15 Console.WriteLine("Hello World!");
16 }
17 }
18
19 class TeacherSon : Teacher
20 {
21
22 }
23
24 interface IPerson
25 {
26 void SayHello();
27 }
注意