C#之接口定义与实现

     今天我来讲一下关于oop中接口方面的知识,希望大家能够斧正。

     oop面向对象编程(Object Oriented Programming),我们接下来将要讲解的是

高级技术,接口的定义和实现。

    接口就是把隐式公共方法和属性组合起来,以封装特定功能的一个集合。一个接口定义了一个协议,接口可以包含方法、属性、事件和索引。 

    接口成员的定义和类成员的定义也是相似的,但是也有几个重要的区别: 

       1.接口成员不允许使用访问修饰符(public、private、protected、或internal),所有接口成员都是公共的。

       2.接口成员不能包含代码体。

       3.接口不能定义成员字段。

       4.接口成员不能用关键字static、virtual、abstract或sealed来定义。

       5.类型定义成员是禁止的。

   要隐藏继承了基接口的成员,可以用关键字new关键字来重新定义它们,例如:




   其效果与隐藏继承的类成员一样。

    在接口中定义的属性可以确定访问块get和/或set中的哪一个能用于该属性,例如下





   其中int属性MyInt有get和set访问器。对于访问级别有更严限制的属性来说,可以省略它们中的任意一个。

   接口的实现

     实现接口的类必须包含该接口的所有成员的执行代码,且必须匹配指定的签名(包

括匹配指定的get和set块),并且必须是公共的。

    下面举个例子关于实现接口的是派生类如下图:



 

     接口成员也可以显式的执行,但此时该成员就只能通过接口来访问,而不能通过类

来访问。

  

  接口成员的显式实现主要有两个用途:

     1.因为显式实现接口成员时,通过类或者结构实例是不可访问接口成员的,所以允

许接口实现在类或结构的公共接口中执行。

     2.显式实现接口允许用相同的签名消除接口成员的歧义。

 另外接口中定义了属性,则是实现接口的类必须实现匹配的get/set访问器,如果接口中属性只包含set块,也可以给类中的属性添加get块。

   关于接口的定义和实现就说这些吧,还有好多不明白的地方,希望大家指正。

                                                              下面该讲委托和事件


原文地址:https://www.cnblogs.com/xzpblog/p/5118002.html