C#Interface(接口)知识点整理

C# Interface(接口)知识点整理

一、接口基础定义

C# 接口(Interface)属于引用类型,用于定义一套行为契约/规范,契约组成仅包含:方法、属性、事件、索引器;接口自身不实现任何成员,由实现该接口的类/结构体完成具体逻辑落地。

二、接口核心语法约束(关键特性)

  1. 成员默认访问权限
    接口内所有成员不能手动添加访问修饰符,默认权限固定为 public
  2. 禁止包含数据与静态成员
    仅允许声明方法、属性、事件、索引器;不允许字段、常量、静态成员,接口只约束行为,不定义数据存储。
  3. 无构造/析构函数
    接口不能定义构造函数、析构函数,接口不代表实体对象;实现类/结构体可自定义构造、析构。
  4. 无法直接实例化
    接口仅为契约规范,无具体实现代码,不能通过 new 实例化,仅其实现类/结构体可实例。
  5. 成员只声明、不能写实现体
    接口中所有成员仅签名声明,不允许编写方法内部业务代码,实现逻辑交由实现类完成。
  6. 天然抽象特性
    接口是抽象约束,实现接口的类/结构体必须完整实现接口全部成员,缺一不可。

三、继承规则

1. 类与接口

  • C# 类单类继承(仅能继承一个父类),但可同时实现多个接口,借助接口变相实现多继承能力;
  • 实现类必须落地所有接口定义的全部成员。

2. 接口与接口

接口支持多接口继承,一个接口可同时继承多个父接口,自动继承所有父接口的成员契约。

四、两种接口实现方式

1. 隐式接口实现

类声明时通过 : 接口名 绑定实现关系,成员直接用 public 实现;

实例通过「类对象」或「接口引用」均可访问实现成员。

2. 显式接口实现

实现成员时格式:接口名.成员名不能加访问修饰符

仅能通过接口类型引用实例访问该成员,类自身实例无法直接调用,用于解决多接口同名成员冲突问题。

五、接口四大精简特点

  1. 全抽象不可实例:接口为抽象契约,无法实例化,因此不能定义字段(成员变量)。
  2. 成员仅声明无实现:属性、索引器、事件、方法只写签名,实现逻辑交给派生接口/实现类。
  3. 模板契约属性:接口具备模板特性,派生接口、实现类自动继承接口所有行为约束。
  4. 弥补类单继承短板:类只能单继承父类,依靠接口多实现实现多契约扩展,代表能力契约而非对象血缘。

六、接口设计价值

  1. 实现多态:面向接口编程,依托多态替换不同实现类;
  2. 代码解耦:上层依赖抽象接口,不依赖具体实现类,降低模块耦合;
  3. 拓展性强:新增业务实现时,只需新建类实现对应接口,原有上层代码无需改动。

总结

接口是C#面向抽象编程的核心工具,用于标准化行为规范、弥补类单继承缺陷、解耦业务代码,大幅提升项目灵活性与可维护性。

posted @ 2024-04-30 10:57  人生就是修炼  阅读(166)  评论(0)    收藏  举报