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"); } } }