第15章 - 接口
嗨,朋友!我是长安。
恭喜你!这是基础教程的最后一章。接口是 C# 中非常重要的概念,它定义了类应该遵循的"契约"。
🤝 什么是接口?
接口定义了一组方法的签名,但不提供实现。实现接口的类必须实现所有方法。
// 定义接口
interface IAnimal
{
void Eat(); // 方法签名,没有实现
void Sleep();
void MakeSound();
}
// 实现接口
class Dog : IAnimal
{
public void Eat()
{
Console.WriteLine("狗在吃骨头");
}
public void Sleep()
{
Console.WriteLine("狗在睡觉");
}
public void MakeSound()
{
Console.WriteLine("汪汪汪!");
}
}
class Cat : IAnimal
{
public void Eat()
{
Console.WriteLine("猫在吃鱼");
}
public void Sleep()
{
Console.WriteLine("猫在睡觉");
}
public void MakeSound()
{
Console.WriteLine("喵喵喵!");
}
}
// 使用
IAnimal animal1 = new Dog();
animal1.Eat();
animal1.MakeSound();
IAnimal animal2 = new Cat();
animal2.Eat();
animal2.MakeSound();
🎯 接口 vs 抽象类 vs 普通类
| 特性 | 接口 | 抽象类 | 普通类 |
|---|---|---|---|
| 关键字 | interface | abstract class | class |
| 实例化 | ❌ 不能 | ❌ 不能 | ✅ 可以 |
| 方法实现 | ❌ 没有 | ⚠️ 可有可无 | ✅ 有 |
| 多继承 | ✅ 支持 | ❌ 不支持 | ❌ 不支持 |
| 成员 | 只有方法签名 | 可以有字段、属性、方法 | 所有成员 |
💡 为什么要用接口?
- 定义规范:统一不同类的行为
- 多继承:一个类可以实现多个接口
- 解耦:降低类之间的依赖
- 多态:通过接口引用不同的实现
// 定义多个接口
interface IFlyable
{
void Fly();
}
interface ISwimmable
{
void Swim();
}
// 一个类实现多个接口
class Duck : IFlyable, ISwimmable
{
public void Fly()
{
Console.WriteLine("鸭子在飞");
}
public void Swim()
{
Console.WriteLine("鸭子在游泳");
}
}
🎉 基础教程完成!
恭喜你完成了C#基础教程的学习!你现在已经掌握了:
- ✅ C# 的基本语法
- ✅ 变量、数据类型和运算符
- ✅ 控制流程和循环
- ✅ 数组和方法
- ✅ 面向对象编程的核心概念
- ✅ 类、继承、多态、封装和接口
📝 本章小结
- 接口定义了方法的契约
- 使用
interface关键字定义 - 实现接口必须实现所有方法
- 一个类可以实现多个接口
- 接口提高了代码的灵活性和可扩展性
🚀 下一步:进阶学习
基础打牢了,现在可以学习进阶内容了!
💪 最后的练习
创建一个完整的动物园系统:
- 定义
IAnimal接口(吃、睡、叫) - 创建至少3种动物类实现接口
- 创建动物数组,遍历调用方法
- 体会多态的威力!
你太棒了!坚持完成了15章的学习!继续加油,进阶内容等着你!💪
