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();
              }
          }

       

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值