打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
抽象类和接口(抽象类部分实现,接口隐式实现)
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();
        }
    }
}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
桥接模式(Bridge Pattern)
[你必须知道的.NET] 第二回:对抽象编程:接口和抽象类
c#里的多态
一步一步学习C#(四 继承) - MR
C#设计模式之总结篇
Head First 设计模式 C#实现_headfirstc#
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服