接口
接口 = 统一的标准插口,谁想用就得按这个规矩来
————————————————————————————————————————————————————————
案例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(); // 扫描中...

浙公网安备 33010602011771号