class Program
{
static void Main(string[] args)
{
//有一個交通工具類Vehicle,將它作為基類派生小車類Car、卡車類Truck和輪船類Boat,定義這些類并定義一個虛函數用來顯示各類信息。
Vehicle vehicle = new Vehicle("交通工具", 8, 8);
Truck truck = new Truck("東風", 18, 18);
Car car = new Car("小汽車", 28, 28);
Boat boat = new Boat("輪船", 38, 38);
truck.ShowMsg();
car.ShowMsg();
boat.ShowMsg();
vehicle.ShowMsg();
}
}
class Boat:Vehicle
{
public Boat(string _name, int _jiage, int _speed)
: base(_name, _jiage, _speed)
{
}
public override void ShowMsg()
{
Console.WriteLine("輪船{0},價格{1},速度{2}", Name, Jiage, Speed);
}
}
class Car:Vehicle
{
public Car(string _name, int _jiage, int _speed)
: base(_name, _jiage, _speed)//base 有參數就執行父類的有參數構造函數 沒有就默認執行父類沒有參數的構造函數
{
}
public override void ShowMsg()
{
Console.WriteLine("汽車{0},價格{1},速度{2}", Name, Jiage, Speed);
}
}
class Truck:Vehicle
{
public Truck(string _name, int _jiage, int _speed)
: base()
{
this.Name = _name;
this.Jiage = _jiage;
this.Speed = _speed;
}
public Truck(string _name, int _jiage, int _speed)
: base(_name, _jiage, _speed)
{
}
public override void ShowMsg()
{
Console.WriteLine("卡車{0},價格{1},速度{2}", this.Name, this.Jiage, this.Speed);
}
}
class Vehicle
{
private string name = "1";
private int jiage;
private int speed;
public string Name
{
get { return name; }
set { name = value; }
}
public int Jiage
{
get { return jiage; }
set
{
if (value > 0)
{
jiage = value;
}
else
{
Console.WriteLine("價格有誤!");
}
}
}
public int Speed
{
get { return speed; }
set { speed = value; }
}
public Vehicle(string _name, int _jiage, int _speed)
{
this.name = _name;
this.jiage = _jiage;
this.speed = _speed;
}
public Vehicle()
{
this.ShowMsg();
}
public virtual void ShowMsg()
{
Console.WriteLine("交通工具{0},售價{1},速度{2}", Name, Jiage, Speed);
}
}