186 lines
3.6 KiB
C#
186 lines
3.6 KiB
C#
|
|
using Lesson19_多态_接口练习;
|
||
|
|
|
||
|
|
namespace Lesson19_多态_接口练习
|
||
|
|
{
|
||
|
|
interface ICheck
|
||
|
|
{
|
||
|
|
public void Check();
|
||
|
|
}
|
||
|
|
class Person : ICheck
|
||
|
|
{
|
||
|
|
public void Check()
|
||
|
|
{
|
||
|
|
Console.WriteLine("派出所登记");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
class Car
|
||
|
|
{
|
||
|
|
public void Check()
|
||
|
|
{
|
||
|
|
Console.WriteLine("车管所登记");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
class House
|
||
|
|
{
|
||
|
|
public void Check()
|
||
|
|
{
|
||
|
|
Console.WriteLine("房管局登记");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
interface IFly
|
||
|
|
{
|
||
|
|
public void Fly();
|
||
|
|
}
|
||
|
|
interface IWalk
|
||
|
|
{
|
||
|
|
public void Walk();
|
||
|
|
}
|
||
|
|
interface ISwim
|
||
|
|
{
|
||
|
|
public void Swim();
|
||
|
|
}
|
||
|
|
|
||
|
|
class Sparrow : IFly, IWalk
|
||
|
|
{
|
||
|
|
public void Fly()
|
||
|
|
{
|
||
|
|
Console.WriteLine("麻雀飞");
|
||
|
|
}
|
||
|
|
public void Walk()
|
||
|
|
{
|
||
|
|
Console.WriteLine("麻雀走");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
class Ostrich : IWalk
|
||
|
|
{
|
||
|
|
public void Walk()
|
||
|
|
{
|
||
|
|
Console.WriteLine("鸵鸟走");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
class Penguin : IWalk, ISwim
|
||
|
|
{
|
||
|
|
public void Walk()
|
||
|
|
{
|
||
|
|
Console.WriteLine("企鹅走");
|
||
|
|
}
|
||
|
|
public void Swim()
|
||
|
|
{
|
||
|
|
Console.WriteLine("企鹅游泳");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
class Parrot : IFly, IWalk
|
||
|
|
{
|
||
|
|
public void Fly()
|
||
|
|
{
|
||
|
|
Console.WriteLine("鹦鹉飞");
|
||
|
|
}
|
||
|
|
public void Walk()
|
||
|
|
{
|
||
|
|
Console.WriteLine("走");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
class Helicopter : IFly
|
||
|
|
{
|
||
|
|
public void Fly()
|
||
|
|
{
|
||
|
|
Console.WriteLine("直升机飞");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
class Swan : IFly, IWalk, ISwim
|
||
|
|
{
|
||
|
|
public void Fly()
|
||
|
|
{
|
||
|
|
Console.WriteLine("天鹅飞");
|
||
|
|
}
|
||
|
|
public void Walk()
|
||
|
|
{
|
||
|
|
Console.WriteLine("天鹅走");
|
||
|
|
}
|
||
|
|
public void Swim()
|
||
|
|
{
|
||
|
|
Console.WriteLine("天鹅游泳");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
interface IUSB
|
||
|
|
{
|
||
|
|
void ReadData();
|
||
|
|
}
|
||
|
|
|
||
|
|
class StorageDevice : IUSB
|
||
|
|
{
|
||
|
|
public string name;
|
||
|
|
public StorageDevice(string name)
|
||
|
|
{
|
||
|
|
this.name = name;
|
||
|
|
}
|
||
|
|
public void ReadData()
|
||
|
|
{
|
||
|
|
Console.WriteLine("USB{0}传输数据",name);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
class MP3 : IUSB
|
||
|
|
{
|
||
|
|
public void ReadData()
|
||
|
|
{
|
||
|
|
Console.WriteLine("MP3传输数据");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
class Computer
|
||
|
|
{
|
||
|
|
public IUSB usb1;
|
||
|
|
}
|
||
|
|
internal class Program
|
||
|
|
{
|
||
|
|
static void Main(string[] args)
|
||
|
|
{
|
||
|
|
Console.WriteLine("Hello, World!");
|
||
|
|
Person p1= new Person();
|
||
|
|
p1.Check();
|
||
|
|
Car c1 = new Car();
|
||
|
|
c1.Check();
|
||
|
|
House h1 = new House();
|
||
|
|
h1.Check();
|
||
|
|
|
||
|
|
Sparrow s1 = new Sparrow();
|
||
|
|
s1.Walk();
|
||
|
|
s1.Fly();
|
||
|
|
Ostrich o1 = new Ostrich();
|
||
|
|
o1.Walk();
|
||
|
|
Penguin p2 = new Penguin();
|
||
|
|
p2.Swim();
|
||
|
|
p2.Walk();
|
||
|
|
Parrot p3 = new Parrot();
|
||
|
|
p3.Walk();
|
||
|
|
p3.Fly();
|
||
|
|
Helicopter h2 = new Helicopter();
|
||
|
|
h2.Fly();
|
||
|
|
Swan s3 = new Swan();
|
||
|
|
s3.Walk();
|
||
|
|
s3.Fly();
|
||
|
|
s3.Swim();
|
||
|
|
|
||
|
|
StorageDevice hd = new StorageDevice("移动硬盘");
|
||
|
|
StorageDevice ud = new StorageDevice("U盘");
|
||
|
|
MP3 mp3 = new MP3();
|
||
|
|
Computer computer = new Computer();
|
||
|
|
|
||
|
|
computer.usb1 = hd;
|
||
|
|
computer.usb1.ReadData();
|
||
|
|
|
||
|
|
computer.usb1 = ud;
|
||
|
|
computer.usb1.ReadData();
|
||
|
|
|
||
|
|
computer.usb1 = mp3;
|
||
|
|
computer.usb1.ReadData();
|
||
|
|
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|