题目:
声明一个车(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();
}
运行结果: