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

多态简介

  • 多态
    • 在继承关系的前提下,实例化出不同的对象,这些对象调用相同的方法,却表现出不同的行为,即为多态。
    • C#语言中体现多态有三种方式:虚方法,抽象类,接口。

虚方法语法

  • 虚方法
    • 在父类中使用 virtual 关键字修饰的方法,就是虚方法。
    • 在子类中可以使用 override 关键字对该虚方法进行重写。
  • 虚方法语法
    父类:
    public virtual 返回值类型 方法名()
    {
       方法体代码;
    }
    
    子类:
    public override 返回值类型 方法名()
    {
       方法体代码;
    } 
  • 例:老虎和猫继承同一个父类,实现 “叫” 虚方法。
            //1.创建猫科类. CatType.cs
            public virtual void Cry()
            {
                Console.WriteLine("我会叫");
            }
    
            //2.创建老虎类. Tiger.cs
            public override void Cry()
            {
                base.Cry();                    //创建时直接在此处输入override,空格一下,可以选择需要实现多态的方法,选择后自动产生本行代码.
                Console.WriteLine("咆哮");
            }
    
            //3.创建猫类. Cat.cs
            public override void Cry()
            {
                base.Cry();
                Console.WriteLine("喵喵喵");
            }
    
            //4.主程序测试.Program.cs
            Tiger t = new Tiger();
            t.Cry();
    
            Console.WriteLine();  //换行.
    
            Cat c = new Cat();
            c.Cry();
    
            Console.ReadKey();
  • 虚方法使用细节
    • 将父类的方法标记为虚方法,就是在父类方法的返回值前加 virtual 关键字,表示这个方法可以被子类重写。
    • 子类重写父类方法,在子类方法的返回值前加 override 关键字。
    • 父类中的虚方法,子类可以重写,也可以不重写。
    • 父类中用 virtual 修饰的方法,可以用于实现该方法共有的功能(比如初始化该方法)。在子类重写该方法时,使用 base 关键字调用父类中的该方法。

猜你喜欢

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