【学东学西#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() {}
}

以上定义了两个接口,分别叫Interface1Interface2。类Implementer同时继承了两个接口,故该类必须实现Interface1Interface2的所有方法。

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();	//可行


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部