美文网首页
Unity3D开发-C#语言进阶篇(面向对象之多态-虚函数应用详

Unity3D开发-C#语言进阶篇(面向对象之多态-虚函数应用详

作者: TonyWan_AR | 来源:发表于2016-12-15 19:23 被阅读251次
     class Program
        {
            static void Main(string[] args)
            {
                //1、有一个交通工具类Vehicle,
                //将它作为基类派生小车类Car、卡车类Truck和轮船类Boat,
                //定义这些类并定义一个虚函数用来显示各类信息。
                //虚函数就是重写           
                Vehicle car = new Car();
                //car.fun() 子类调用不了自己的普通方法 除非重写;
    
                Vehicle truck = new Truck();
                Vehicle boat = new Boat();
                //car.ZuoYong();
                //truck.ZuoYong();
                //boat.ZuoYong();
    
                //2、定义猫科动物Animal类,由其派生出猫类(Cat)和豹类(Leopard),
                //二者都包含虚函数 Sound( ),
                //要求根据派生类对象的不同调用各自重载后的成员函数(向上转型)。
    
    
                Animal cat = new Cat();
                cat.Catch();
                cat.Catch("鱼");
    
                Animal leoprad = new Leopard();
                leoprad.Catch();
                leoprad.Catch("喜羊羊");
            }
        }
    
    
     class Animal
        {
            public Animal()
            {
                // this.Catch();
            }
    
    
            //重载必须写在同一个类中
            public void Catch()
            {
    
                Console.WriteLine("捕获行为!");
            }
    
            public void Catch(string s)
            {
    
                Console.WriteLine("捕获了:" + s);
            }
    
        }
    
     class Boat:Vehicle
        {
            public Boat()
            {
                this.ZuoYong();
            }
    
            public override void ZuoYong()
            {
                Console.WriteLine("子类--轮船的主要作用是在水上行走!");
            }
        }
    
     class Car:Vehicle
        {
    
            public Car()
            {
    
                this.ZuoYong();
            }
    
            public override void ZuoYong()
            {
                Console.WriteLine("子类-小汽车的主要功能是载人!");
            }
    
            public void fun()//自身的方法 如果由基类派生出子类;类对象名调用不了自己的方法;如:Vechicle car=new Car();
            {
                Console.WriteLine("子类自己的普通方法!");
            }
        
        }
    
     class Cat:Animal
        {
        }
    
     class Leopard:Animal
        {
        }
    
     class Truck:Vehicle
        {
            public Truck()
            {
                this.ZuoYong();
            }
    
            public override void ZuoYong()
            {
                Console.WriteLine("子类-卡车的主要作用是运输货物!");
            }
        }
    
      class Vehicle
        {
            private string name;
    
            public string Name
            {
                get { return name; }
                set { name = value; }
            }
    
            public virtual void ZuoYong() {
                Console.WriteLine("父类-交通工具主要是运输!");
            
            }
    
            public Vehicle() {
                //this.ZuoYong();
            }
        }
    

    相关文章

      网友评论

          本文标题:Unity3D开发-C#语言进阶篇(面向对象之多态-虚函数应用详

          本文链接:https://www.haomeiwen.com/subject/huugmttx.html