分享

抽象类和接口(抽象类部分实现,接口隐式实现)

 空城66 2014-12-15
namespace 接口和抽象类
{
    /// <summary>
    /// 载客
    /// </summary>
    interface IpassengerCarrierable
    {
        void Passenger();        
    }
    /// <summary>
    /// 载货
    /// </summary>
    interface IHeavyLoadCarrierable
    {
        void Cargo();
    }
    /// <summary>
    /// 车类
    /// </summary>
    abstract class Vehicle
    {
        public string Color { get; set; }
        public string Type { get; set; }
        public double Money { get; set; }
        public abstract void Start();
        public abstract void Run();
        public abstract void Stop();
        public void CanRunInRoad()
        {
            Console.WriteLine("该工具正行驶在公路上!");
        }
    }
    abstract class Car : Vehicle
    {
        public override void Start()
        {
            Console.WriteLine("该轿车正在启动中!");
        }
        public override void Run()
        {
            Console.WriteLine("该轿车正在行驶中!");
        }
        public override void Stop()
        {
            Console.WriteLine("该轿车正在抛锚中!");
        }
    }
    abstract class Train : Vehicle
    {
        public override void Start()
        {
            Console.WriteLine("火车发动中!");
        }
        public override void Run()
        {
            Console.WriteLine("火车运行中!");
        }
        public override void Stop()
        {
            Console.WriteLine("火车停止运行了!");
        }
    }
    class Compact : Car,IpassengerCarrierable
    {
        public void Passenger()
        {
            Console.WriteLine("小polo正在载客!");
        }
    }
    class FreightTrain : Train, IHeavyLoadCarrierable
    {
        public void Cargo()
        {
            Console.WriteLine("该趟列车正在载货中!");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
           Compact c= new Compact();
            c.Color = "黄色";
            c.Type = "紧凑型小polo";
            c.Money = 120000;
            Console.WriteLine("这辆{0}{1}大概{2}钱,",c.Color ,c.Type ,c.Money);
            c.CanRunInRoad();
            c.Start();            
            c.Run();
            c.Passenger();
            c.Stop();
            Console.WriteLine();
            FreightTrain f = new FreightTrain();
            f.Color = "绿色";
            f.Type = "载货列车";
            f.Money = 1000000;
            Console.WriteLine("这辆{0}{1}大概{2}钱,", f.Color, f.Type, f.Money);
            f.Start();
            f.Run();
            f.Cargo();
            f.Stop();
            Console.ReadKey();
        }
    }
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多