接口

接口 = 统一的标准插口,谁想用就得按这个规矩来

————————————————————————————————————————————————————————

案例1:最经典的"会飞"接口(鸟和飞机都能飞)
csharp
interface IFlyable
{
void Fly(); // 接口只声明,不实现
}

class Bird : IFlyable
{
public void Fly() { Console.WriteLine("小鸟扇翅膀飞"); }
}

class Plane : IFlyable
{
public void Fly() { Console.WriteLine("飞机喷气飞"); }
}

// 使用
IFlyable f1 = new Bird();
IFlyable f2 = new Plane();
f1.Fly(); // 小鸟扇翅膀飞
f2.Fly(); // 飞机喷气飞

————————————————————————————————————————————————————————

案例2:打印机和扫描仪都"能工作"(接口里的多个方法)
csharp
interface IDevice
{
void TurnOn();
void DoWork();
}

class Printer : IDevice
{
public void TurnOn() { Console.WriteLine("打印机开机"); }
public void DoWork() { Console.WriteLine("打印文档"); }
}

class Scanner : IDevice
{
public void TurnOn() { Console.WriteLine("扫描仪开机"); }
public void DoWork() { Console.WriteLine("扫描图片"); }
}

// 使用
IDevice d = new Printer();
d.TurnOn(); // 打印机开机
d.DoWork(); // 打印文档

————————————————————————————————————————————————————————

案例3:一个类实现多个接口("多功能设备")
csharp
interface IPrinter { void Print(); }
interface IScanner { void Scan(); }

class AllInOne : IPrinter, IScanner
{
public void Print() { Console.WriteLine("打印中..."); }
public void Scan() { Console.WriteLine("扫描中..."); }
}

// 使用
AllInOne device = new AllInOne();
device.Print(); // 打印中...
device.Scan(); // 扫描中...

// 也可以分别当打印机或扫描仪用
IPrinter p = device;
IScanner s = device;
p.Print(); // 打印中...
s.Scan(); // 扫描中...

posted @ 2026-08-08 13:14  菜鸟的奋斗军  阅读(3)  评论(0)    收藏  举报