• 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块。

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

                                                                  下面该讲委托和事件


  • 相关阅读:
    技术文章应该怎么写?
    后退时保存表单状态
    [原]长表头表格 竖直仅滚动内容区 水平滚动表头和内容区
    IE7不经提示关闭浏览器窗口
    meta 标记
    demo : 简单的 xslt 递归解析 xml 成 tree
    使用iframe和table模拟frameset的resize功能.html
    一个下划线(_)引发的"疑难杂症"
    几点小东西
    使用 ActiveReports 的 subReport 几点疑惑
  • 原文地址:https://www.cnblogs.com/xzpblog/p/5118002.html
Copyright © 2020-2023  润新知