C# 经典练习题6 [车(vehicle) 基类]

本文展示了如何在C#中声明一个车辆基类Vehicle,包含MaxSpeed、Weight等属性和Run、Stop等方法,并派生出自行车Bicycle、汽车Motorcar类。Bicycle类增加Height属性,Motorcar类增加SeatNum属性。进一步地,从Bicycle和Motorcar派生出摩托车Motorcycle类,实现了接口Bicy和Motor,增加了获取车高和车座数的方法。代码示例演示了类的实例化和方法调用过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:

声明一个车(vehicle) 基类,具有MaxSpeed, Weight等成员变量(私有,使用属性进行读写),Run, Stop等成员函数,由此派生出自行车(bicycle)类,汽车(motorcar)类。自行车(bicycle)类有高度(Height)等属性,汽车(motorcar )类有座位数(SeatNum)等属性。从bicycle和motorcar派生出摩托车(motocycle) 类。编写程序验证继承关系。

程序代码:

自定义 class


    class Vehicle
    {
        public float speed;
        public string name;
        private float maxspace;
        private float weight;
        public float MaxSpace
        {
            set { maxspace = value; }
            get { return maxspace; }
        }
        public float Weight
        {
            set { weight = value; }
            get { return weight; }
        }
        /*public Vehicle(float maxspace, float weight)
        {
            this.maxspace = maxspace;
            this.weight = weight;
            Console.WriteLine("车辆重量{0}KG", weight);
        }
        */
        //新建方法run

        public virtual void Run()
        {
            Console.WriteLine("车辆正在以{0}m/s的最大速度前行", maxspace);
        }
        //新建方法stop
        public void Stop()
        {
            speed = 0;
            Console.WriteLine("当前车辆速度降为:{0}",speed);
            Console.WriteLine("车辆停止");

        }
        public void PrintName()
        {

            Console.WriteLine("现在使用的车类型->");
            name = Console.ReadLine();
            Console.WriteLine("请输入车重:");
            Weight = float.Parse(Console.ReadLine());
            //Console.WriteLine("请输入车高:");
            //Height = float.Parse(Console.ReadLine());
            Console.WriteLine("请输入当前时速:");
            speed = float.Parse(Console.ReadLine());
            Console.WriteLine("请输入最高时速:");
            MaxSpace = float.Parse(Console.ReadLine());
            //Console.WriteLine("当前使用的为:自行车");
        }

    }
    class Bicycle : Vehicle
    {

        //定义一个打印名字的方法
        private float height;//定义高度
        public float Height
        {
            set { height = value; }
            get { return height; }
           
        }
        public float Printadd1()
        {
            Console.WriteLine("请输入车高:");
            Height = float.Parse(Console.ReadLine());
            return Height;
        }
        
        //重写 Run方法
        public override void Run()
        {   
            Console.WriteLine("车重是" + Weight + "KG 车高是"+ Height+"m 当前时速是" + speed + "m/s 最高时速是" + MaxSpace + "m/s");
        }
    }
    class  Motorcar : Vehicle
    {

        private float seatnum;//定义车座数
        public float SeatNum
        {
            set { seatnum = value; }
            get { return seatnum; }

        }
        public void Printadd2()
        {
            Console.WriteLine("请输入车座数:");
            SeatNum = float.Parse(Console.ReadLine());
        }
        //重写 Run方法
        public override void Run()
        {
           Console.WriteLine("车重是" + Weight + "KG 车座是" + SeatNum + "位 当前时速是" + speed + "m/s 最高时速是" + MaxSpace + "m/s");
        }
        
    }
    
    public interface Bicy
    {
        void getHight();
    }
    public interface Motor
    {
        void getNum();
    }
    class Motorcycle: Bicycle,Motor
    {
       
        private float heigh;
        private float num;
        public float Heigh
        {
            set { heigh = value; }
            get { return heigh; }

        }
        public float Num
        {
            set { num = value; }
            get { return num; }

        }
        public void getHight()
        {   
            Console.WriteLine("请输入车高:");
            Heigh = float.Parse(Console.ReadLine());
        }
        
        public void getNum()
        {
            Console.WriteLine("请输入车座数:");
            Num = float.Parse(Console.ReadLine());
        }
       
        public override void Run()
        {
            Console.WriteLine("车重是" + Weight + "KG 车高是" + Heigh + "m 车座是" + Num + "位 当前时速是" + speed + "m/s 最高时速是" + MaxSpace + "m/s");
        }
       

    }

主函数Main()

static void Main(string[] args)
        {
            /*
            //类的实例及初始化,car1为实例
            Vehicle car = new Vehicle();
            //将车辆速度赋值100
            //car1.speed = 100;
            //调用 Vehicle类的run方法
            car.Run();
            //调用 Vehicle类的stop方法
            car.Stop();
            Console.WriteLine("当前车辆速度为:" + car.speed);
            */
            
            Bicycle bicycle = new Bicycle();
            //输出信息
            bicycle.PrintName();
            bicycle.Printadd1();
            //启动
            bicycle.Run();
            //停车
            bicycle.Stop();
            Console.WriteLine("============================");
            Motorcar motorcar = new Motorcar();
            //输出信息
            motorcar.PrintName();
            motorcar.Printadd2();
            //启动
            motorcar.Run();
            //停车
            motorcar.Stop();
            Console.WriteLine("============================");
            
            Motorcycle motorcycle = new Motorcycle();
            motorcycle.PrintName();
            motorcycle.getHight();
            motorcycle.getNum();
            motorcycle.Run();
            motorcycle.Stop();
            Console.WriteLine("============================");
            Console.ReadKey();

        }
    

 运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小凡同学zero

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值