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

接口语法

  • 抽象类 -> 接口
    • 当抽象类中所有方法都是抽象方法时,可以把这个抽象类用另外一种形式来表现,这种形式叫接口。
  • 语法格式要求
    • 接口使用 interface 关键字定义,没有 class 关键字,接口名一般使用 “IXxxx” 这种方式进行书写,在一堆脚本中通过名字判断,I 开头的都是接口。
    • 接口中不能包含字段,但可以包含属性。
    • 接口中定义的方法不能有方法体,全是抽象方法,但又不需要用 abstract 修饰。
    • 接口中的成员不允许添加访问修饰符,默认都是 public。
  • 用法
    • 添加类 --> 接口
  • 接口注意事项
    • 接口中所有方法都是抽象方法,所以接口不能被实例化。
    • 一个类可以实现多个接口,被实现的多个接口之间用逗号隔开。
    • 一个接口可以继承多个接口,接口之间也要用逗号隔开。
  • 练习
        //1.创建汽车的父类. Car.cs
        class Car
        {
            private string brand;
    
            public string Brand
            {
                get { return brand; }
                set { brand = value; }
            }
    
            public Car(string brand)
            {
                this.brand = brand;
            }
    
            public void Run()
            {
                Console.WriteLine("{0}品牌的汽车在路上行驶。", brand);
            }
        }
    
    
        //2.创建子类:宝马.  BMWCar.cs
        class BMWCar:Car
        {
            public BMWCar(string brand)
                :base(brand)
            {
    
            }
        }
    
    
        //3.创建接口IFly.  IFly.cs  实现下面蝙蝠侠战车特有的飞行功能.
        interface IFly
        {
            void Fly(); 
        }
    
    
    
        //4.创建子类:蝙蝠侠战车. Batmobile.cs
        class Batmobile:Car,IFly
        {
            public Batmobile(string brand) : base(brand) { }
    
            public void Fly()
            {
                Console.WriteLine("{0}在飞行。", base.Brand);
            }
        }
    
    
        //5.主程序测试. Program.cs
        class Program
        {
            static void Main(string[] args)
            {
                BMWCar b1 = new BMWCar("宝马750");
                b1.Run();
                BMWCar b2 = new BMWCar("宝马740");
                b2.Run();
                Batmobile bat1 = new Batmobile("蝙蝠侠战车1号");
                bat1.Run();
                bat1.Fly();
    
                Console.ReadKey();
            }
        }
    

使用场景

  • 接口是一种规范,当我们对现在已经存在的类的继承关系进行功能扩展时,可以使用接口完成相应的工作。

猜你喜欢

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