/*base 簡單點的說,代表直接父類. 如果子類的父類還有父類,這時base只能訪問到它的直接父類 也就說說父類的父類是沒有辦法訪問到的. 1,使用base可以訪問父類中的成員 2,使用父類構造函數. * */ using System; using Traffic; namespace Test { class Test { static void Main() { Car theCar1=new Car(); Car theCar2=new Car("吉利",300); GaoJiCar theCar3=new GaoJiCar(); } } } namespace Traffic { public class Vehicle { private string name; private int speed; public Vehicle(){} public Vehicle(string name) { this.name=name; } public Vehicle(string name,int speed) { this.name=name; this.speed=speed; Console.WriteLine("調用了父類中的兩個參數的構造函數."); } public void getName()//成員方法 { Console.WriteLine(this.name); } } public class Car:Vehicle { public Car() { base.getName();//使用父類中的成員方法 } //base(name,200)中的name是直接傳入的Car(string name)中的name //因此這裡在name前不需要有數據類型 //這裡會先執行父類的再執行子類的構造函數 public Car(string name,int speed):base(name,speed) { Console.WriteLine("子類中的構造函數"); } } public class GaoJiCar:Car { //這裡會依次執行Vehicle,Car,GaoJiCar都帶有兩個參數的構造函數 public GaoJiCar():base("長安",124) { Console.WriteLine("子類的子類中的構造函數"); } } }