c# abstract抽象类_非抽象类_virtual_虚方法_override重写

//测试:父类的方法标记为virtual时,子类可以用override重写父类的方法
      class Vehicle
    {
          public virtual void F()
          {
              Console.WriteLine("这是类vehicle的virtual虚方法F");
          }
    }

    class Car : Vehicle
    {
        public override void  F()
       {
          Console.WriteLine("子类CAR继承了VEHICLE父类,重写了父类方法F");
       }
        
    }



    //抽象类可以继承非抽象类
    abstract class Lane : Vehicle
    {
        public override void F()
        {
            Console.WriteLine("抽象类fane重写了父类的方法F");
        }
    }

    //子类的抽象方法重写了非抽象类的虚方法
    //这样就可以屏掉在继承情况下非抽象类的一些虚方法的实现,而编写自己需要的实现
    abstract class Mv : Vehicle
    {
        public abstract override void F();
       
    }

    class Sun : Mv
    {
        public override void F()
        {
            Console.WriteLine("子类sun继承了抽象父类,并重写了抽象父类的抽象方法");
        }

    }
请使用浏览器的分享功能分享到微信等