Unity 3D游戏开发 - C#面向对象 | 多态之接口案例

C#属性

  • 常规属性
    • 先定义一个私有的字段,再为这个私有字段封装一个公开的属性,在属性中实现 get 和 set 两个方法,即为常规属性。
    • 当我们使用常规属性时,可以在 get 和 set 方法中,编写逻辑代码对取值和赋值进行逻辑的校验。
  • 自动属性
    • 在某些情况下,属性的 get 和 set 只是完成字段的取值和赋值操作,而不包含任何附加的逻辑代码,这个时候可以使用自动属性。
    • 例如: public int Age { get; set; }
    • 当我们使用自动属性时,就不需要再写对应的字段了,C#编译器会自动给自动属性提供一个对应的字段。
    • 在接口中使用属性,要写自动属性的格式,因为接口中不支持字段。

接口案例

  • 模拟电脑 USB 接口
    • 所有电脑都有 USB 接口,它们存在的目的是为了方便对电脑进行功能上的扩展,可以在这些接口上插 U盘、手机等。
    • 我们能够在 USB 接口上插入这些外置设备,是因为这些设备的接口都符合 USB 接口的协议,符合这个协议,设备才能和电脑正常连接。
    • 编码实现
      • USB 是一个接口。
      • U盘、手机等具体产品,在满足自身功能的前提下,需要实现这个 USB 接口规定的功能。
            //1.创建IUSB接口.  IUSB.cs
            interface IUSB
            {
                void Read();
                void Write();
            }
        
            //2.创建U盘类,实现接口功能.  UDisk.cs
            class UDisk:IUSB
            {
                private string content;
        
                public void Read()
                {
                    Console.WriteLine(content);
                }
        
                public void Write()
                {
                    content = "ShaKaLaKa";
                }
            }
        
            //3.主程序测试. Program.cs
            class Program
            {
                static void Main(string[] args)
                {
                    UDisk u = new UDisk();
                    u.Write();
                    u.Read();
        
                    Console.ReadKey();
                }
            }

猜你喜欢

转载自blog.csdn.net/weixin_41232641/article/details/82721922