写点什么

C#入门系列 (二十五) -- 接口

作者:陈言必行
  • 2022 年 7 月 20 日
  • 本文字数:874 字

    阅读完需:约 3 分钟

接口概念

C#提供了多种进行规模化程序设计会用到的技术,如接口、程序集、命名空间等,本篇文章介绍下接口。


  接口是类和类之间的协议,使用接口可以使得实现接口的类或结构在形式上保持一致,使程序更加清晰和条理化,具有很好的扩展性,并可以方便实现类与类之间的统一管理,是组件技术的重要支撑。


接口把所有的方法和属性都掏空了,接口内部只有声明没有实现代码。


接口的声明语法如下:


[修饰符] interface 接口名{    //接口体}
复制代码


代码示例:


public interface ITest{    void Show();}
复制代码



接口声明

接口就是一组类或结构的一种实现形式约定。


声明接口时,需要遵守下面的规则:


  1. 接口声明不能包括数据成员;

  2. 接口声明只能包括成员类型为方法、属性、事件和索引的非静态成员函数的声明;

  3. 接口的函数成员声明不能包括任何实现代码,每个函数成员声明的主体后必须使用分号;

  4. 按照惯例,接口的名称必须从大写的 I 开始;

  5. 与类和结构相似,接口声明可以分割成分部接口声明;

  6. 接口声明可以使用所有的访问修饰符 public、protected、internal 和 private;

  7. 接口的成员是隐式 public 的,不允许有任何访问修饰符。


C#虽然不支持类的多继承,但是 C#支持接口的多继承,代码实现如下:


public interface ITest{    void Show();}    public interface ITest_A{}
public interface ITest_B: ITest, ITest_A{}
复制代码



接口实现

只有类和结构可以实现接口。要实现接口,类或结构必须在基类列表中包括接口名称,并且必须为每一个接口成员提供实现。


实现接口时必须实现所有接口成员,否则就会出现编译错误:



代码示例:


public interface ITest{    void Show();}
class Test : ITest{ public void Show() { Console.WriteLine("---"); }}
复制代码


补充说明:


  • 如果类从基类继承并实现接口,则基类列表中基类名称必须放在任何接口之前。

  • C#支持一个类或结构实现多个接口,所有实现的接口必须在基类列表中用逗号分隔。


  如果一个类实现了多个接口,并且其中一些接口有相同签名和返回类型的成员,则类可以实现单个成员来满足所有包含重复成员的接口,也可以通过显式实现方式分别实现每个接口的成员

发布于: 刚刚阅读数: 3
用户头像

陈言必行

关注

公号:开发同学留步 2019.03.12 加入

我是一个从事Unity游戏开发攻城狮,6年开发经验,助你日常不加班。

评论

发布
暂无评论
C#入门系列(二十五) -- 接口_七月月更_陈言必行_InfoQ写作社区