C#Interface(接口)知识点整理
C# Interface(接口)知识点整理
一、接口基础定义
C# 接口(Interface)属于引用类型,用于定义一套行为契约/规范,契约组成仅包含:方法、属性、事件、索引器;接口自身不实现任何成员,由实现该接口的类/结构体完成具体逻辑落地。
二、接口核心语法约束(关键特性)
- 成员默认访问权限
接口内所有成员不能手动添加访问修饰符,默认权限固定为public。 - 禁止包含数据与静态成员
仅允许声明方法、属性、事件、索引器;不允许字段、常量、静态成员,接口只约束行为,不定义数据存储。 - 无构造/析构函数
接口不能定义构造函数、析构函数,接口不代表实体对象;实现类/结构体可自定义构造、析构。 - 无法直接实例化
接口仅为契约规范,无具体实现代码,不能通过new实例化,仅其实现类/结构体可实例。 - 成员只声明、不能写实现体
接口中所有成员仅签名声明,不允许编写方法内部业务代码,实现逻辑交由实现类完成。 - 天然抽象特性
接口是抽象约束,实现接口的类/结构体必须完整实现接口全部成员,缺一不可。
三、继承规则
1. 类与接口
- C# 类单类继承(仅能继承一个父类),但可同时实现多个接口,借助接口变相实现多继承能力;
- 实现类必须落地所有接口定义的全部成员。
2. 接口与接口
接口支持多接口继承,一个接口可同时继承多个父接口,自动继承所有父接口的成员契约。
四、两种接口实现方式
1. 隐式接口实现
类声明时通过 : 接口名 绑定实现关系,成员直接用 public 实现;
实例通过「类对象」或「接口引用」均可访问实现成员。
2. 显式接口实现
实现成员时格式:接口名.成员名,不能加访问修饰符;
仅能通过接口类型引用实例访问该成员,类自身实例无法直接调用,用于解决多接口同名成员冲突问题。
五、接口四大精简特点
- 全抽象不可实例:接口为抽象契约,无法实例化,因此不能定义字段(成员变量)。
- 成员仅声明无实现:属性、索引器、事件、方法只写签名,实现逻辑交给派生接口/实现类。
- 模板契约属性:接口具备模板特性,派生接口、实现类自动继承接口所有行为约束。
- 弥补类单继承短板:类只能单继承父类,依靠接口多实现实现多契约扩展,代表能力契约而非对象血缘。
六、接口设计价值
- 实现多态:面向接口编程,依托多态替换不同实现类;
- 代码解耦:上层依赖抽象接口,不依赖具体实现类,降低模块耦合;
- 拓展性强:新增业务实现时,只需新建类实现对应接口,原有上层代码无需改动。
总结
接口是C#面向抽象编程的核心工具,用于标准化行为规范、弥补类单继承缺陷、解耦业务代码,大幅提升项目灵活性与可维护性。

浙公网安备 33010602011771号