namespace P5_5
{
class Program
{
static void Main(string[] args)
{
Vehicle v1 = new Train();
v1.Speak();
Console.WriteLine("行驶1000公里需{0}小时",v1.Run(1000));
v1=new Truck(16,24);
v1.Speak();
Console.WriteLine("行驶1000公里需{0}小时",v1.Run(1000));
}
}
public abstract class Vehicle
{
private float speed;
public float Speed
{
get { return speed; }
}
public virtual float Run(float distance)
{
return distance / speed;
}
将P5_5例题中基类Automobile的Speak方法加修饰符sealed,请相应地修改程序。
public abstract void Speak();
public Vehicle(float speed)
{
this.speed = speed;
}
}
public class Train : Vehicle
{
public Train()
: base(160)
{ }
public override void Speak()
{
Console.WriteLine("呜......");
}
}
public abstract class Automobile : Vehicle
{
public Automobile(float speed) : base(speed)
{ }
public sealed override abstract void Speak();
}
public class Truck:Automobile
{
private float weight;
public float Weight
{
get{return weight ;}
}
private float load;
public float Load
{
get{return load;}
}
public Truck(int weight,int load):base(50)
{
this.weight=weight;
this.load=load;
}
public override float Run(float distance)
{
return (1+load/Weight/2)*base.Run(distance);
}
public override void Speak()
{
Console.WriteLine ("叭......叭......");
}
}
}