Unity 3D游戏开发 - C#面向对象 | 多态之里氏转换原则案例
其他
2018-09-24 02:59:27
阅读次数: 0
多态综合案例
- 模拟电脑与外部移动设备的关系
- 创建三个类:电脑类,U 盘类,移动硬盘类。
- 模拟外部存储设备插入电脑后,电脑对二者的存取操作。
//1.创建一个接口IUSB,用于写入和读取数据.
interface IUSB
{
/// <summary>
/// 读取移动设备中的数据.
/// </summary>
void Read();
/// <summary>
/// 往移动硬盘中写入数据.
/// </summary>
void Write(string content);
}
//2.创建电脑类. Computer.cs
class Computer
{
private string brand;
public IUSB USB_1;
public IUSB USB_2;
public string Brand
{
get { return brand; }
set { brand = value; }
}
public Computer(string brand)
{
this.brand = brand;
}
public void Start()
{
Console.WriteLine("{0}品牌的电脑正在开机。", brand);
}
public void End()
{
Console.WriteLine("{0}品牌的电脑正在关机。", brand);
}
}
//3.创建移动硬盘父类. Disk.cs
class Disk
{
private string brand;
public string Brand
{
get { return brand; }
set { brand = value; }
}
public Disk(string brand)
{
this.brand = brand;
}
}
//4.创建子类U盘. UDisk.cs
class UDisk:Disk,IUSB
{
private string content;
public UDisk(string brand)
:base(brand)
{
}
public void Read()
{
Console.WriteLine("{0}读取数据{1}", Brand, content);
}
public void Write(string content)
{
this.content += content;
Console.WriteLine("{0}存入数据{1}",Brand,content);
}
}
//5.创建子类硬盘. HardDisk.cs
class HardDisk:Disk,IUSB
{
private string content;
public HardDisk(string brand)
:base(brand)
{
}
public void Read()
{
Console.WriteLine("{0}读取数据{1}", Brand, content);
}
public void Write(string content)
{
this.content += content;
Console.WriteLine("{0}存入数据{1}", Brand, content);
}
}
//6.主程序测试. Program.cs
class Program
{
static void Main(string[] args)
{
UDisk u1 = new UDisk("金士顿32GB");
HardDisk h1 = new HardDisk("三星500GB");
Computer c1 = new Computer("华硕");
c1.Start();
c1.USB_1 = u1;
c1.USB_1.Write("Bong!");
c1.USB_1.Write("ShaKaLaKa!");
c1.USB_1.Read();
c1.USB_2 = h1;
c1.USB_2.Write("dubdublabala!");
c1.USB_2.Read();
c1.End();
Console.WriteLine();
Computer c2 = new Computer("戴尔");
c2.Start();
c2.End();
Console.ReadKey();
}
}
转载自blog.csdn.net/weixin_41232641/article/details/82724680