Unity 3D游戏开发 - C#面向对象 | 多态之里氏转换原则案例

多态综合案例

  • 模拟电脑与外部移动设备的关系
    • 创建三个类:电脑类,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