我有下面的代码与IVehicle接口有TestDrive方法。有一个抽象类- Vehicles,它实现IVehicle &具有一个属性TestDriveTime。
有许多子类,如Car、Scooter等(大约25个这样的子类)。它们是从Vehicle派生的&它们有自己的TestDrive()实现。
请帮我解决问题-
TestDrive,那么Main()中的代码正确吗?TestDriveTime,我应该如何设置它?。
public interface IVehicle
{
void TestDrive();
}
public abstract class Vehicle : IVehicle
{
public DateTime TestDriveTime { get; set; }
abstract public void TestDrive();
}
public class Car : Vehicle
{
public override void TestDrive()
{
// code for car testDrive
// uses TestDriveTime
}
}
public class Scooter : Vehicle
{
public override void TestDrive()
{
// code for car testDrive
// uses TestDriveTime same as car
}
}
static void Main(string[] args)
{
IVehicle vehicle = null;
// 1. need to set the TestDriveTime which can be used for vehicles of all types.
vehicle = new Car();
vehicle.TestDrive();
// 2. Need to run the TestDrive for all vehicles sequentially
vehicle = new Scooter();
vehicle.TestDrive();
}发布于 2016-01-29 11:25:44
1)宣布一份清单:
List<IVehicle> vehicles = new List<IVehicle>();然后加上你所有的车辆:
vehicles.Add(new Car());
vehicles.Add(new Scooter());并迭代:
foreach (IVehicle v in vehicles)
v.TestDrive();2)可以设置TestDriveTime并将其用于所有对象:
v.TestDrive(TestDriveTime);
将方法声明更改为:IVehicle.TestDrive(DateTime testDriveTime)
https://stackoverflow.com/questions/35083149
复制相似问题