C#虚方法,抽象类,接口

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 接口和抽象类
{
    class Program
    {
        static void Main(string[] args)
        {
            Vehicle v = new Car();
            v.Run();
            v.Fill();
            v.Stop();

            IVehicle v1 = new Truck();
            v1.Run();
            v1.Fill();
            v1.Stop();
            Console.ReadLine();
        }
    }


    interface IVehicle //接口,实际是纯虚类,所以方法都是抽象方法
    {
        void Fill();
        void Stop();
        void Run();
    }
    abstract class Vehicle:IVehicle //子类Vehicle实现了接口的方法
    {
        public void Fill()
        {
            Console.WriteLine("Filling...");
        }

        public void Stop()
        {
            Console.WriteLine("Stopping...");

        }

        abstract public void Run(); //Run方法没有在Vehicle中实现,所以继续定义为抽象方法

        //public virtual void Run() //由于虚方法中没有任何函数实现,所以定义为上面的抽象方法
        //{

        //}

    }
    class Car:Vehicle
    {
        public override void Run()//在子类中实现Vehicle的抽象方法
        {
            Console.WriteLine("Car is Runing");
        }
    }
    class Truck:Vehicle
    {
        public override void Run()//在子类中实现Vehicle的抽象方法
        {
            Console.WriteLine("Trunk is Runing");
        }
    }
}

  

 

posted @ 2020-10-23 15:07  荼离伤花  阅读(1)  评论(0编辑  收藏  举报