首页/ 第 5 章 · C# 编程基础/ 第 68 课
LESSON 68 · C# 编程基础

接口 Interface

接口已掌握。下一课学命名空间与 using。

⏱ 约 14 分钟📊 难度:入门🗂 第 5 章 · C# 编程基础📍 第 68 / 300 课
课程进度
68 / 300

🎯本节学习目标

  • 理解接口的概念
  • 掌握接口定义与实现
  • 区分接口与继承

🚀课程导读

接口是“能力合同”:规定“你必须会这些”,但不管“你怎么做”。比如“会飞的”可以是鸟,也可以是飞机。

接口的概念与定义

只声明,不实现。

  1. 接口(Interface)声明“类必须提供哪些方法/属性”,但不写具体实现。
  2. 定义语法:interface 接口名 { 返回类型 方法名(参数); }
  3. 接口名习惯以 I 开头:IFlyable、IDamageable。
  4. 例:interface IDamageable { void TakeDamage(int dmg); }
  5. 接口里的方法默认是 public 且没有方法体。
  6. 接口不能被实例化(不能 new)。
  7. 类实现接口:class 类名 : 接口名 { 实现所有方法 }
  8. 类实现接口后,必须实现接口里声明的全部成员,否则编译报错。
💡
接口是“能力标签”:IDamageable 表示“可以被伤害”,与“你是什么类”无关。

接口 vs 继承 & 实战

多实现与统一处理。

  1. 【区别】继承是“is-a”(狗是动物);接口是“can-do”(能飞、能受伤)。
  2. 【多实现】一个类只能继承一个父类,但可以实现多个接口:class Bird : Animal, IFlyable, IDamageable。
  3. 【实战】定义接口:
  4. interface IDamageable { void TakeDamage(int dmg); }
  5. 让两个不同类实现它:class Player : IDamageable { public void TakeDamage(int dmg) { ... } } class Enemy : IDamageable { public void TakeDamage(int dmg) { ... } }
  6. 用一个接口数组统一管理:IDamageable[] targets = { new Player(), new Enemy() };
  7. foreach (var t in targets) { t.TakeDamage(10); }
  8. 统一调用“受伤”逻辑,不管对象是玩家还是敌人。
  9. 【接口也支持多态】接口引用指向实现类对象。
接口让“不同的类”有“相同的能力”,是设计“子弹可以打任何物体”这类逻辑的利器。

常见错误与排查

错误:报错:未实现接口成员?
原因:类实现了接口却没实现全部方法
解决:补全接口声明的所有方法(签名需完全一致)。

动手练习

课后小任务(做出来才算真的学会)

  • 定义 IDamageable 接口
  • 让 Player 和 Enemy 都实现它
  • 用接口数组统一对它们造成伤害

本节小结

接口已掌握。下一课学命名空间与 using。

完成打卡后,主站会实时更新你的学习进度 🎯

← 上一课多态 Polymorphism 与虚方法