繼承讓衍生類別能取得基類別的成員(方法、欄位、屬性、事件、索引子),並可新增或修改行為。C# 採單一繼承模型:一個類別只能直接繼承自一個基類別,這避免了 C++ 多重繼承帶來的菱形繼承等複雜問題。所有類別隱含繼承自 Object 類別。
new 關鍵字消除警告。using System;
class Vehicle {
public int Wheels { get; set; }
protected float Weight { get; set; }
public Vehicle() { }
public Vehicle(int w, float g) { Wheels = w; Weight = g; }
public virtual void Speak() => Console.WriteLine("Vehicle is speaking!");
}
class Car : Vehicle {
public int Passengers { get; set; }
public Car(int w, float g, int p) : base(w, g) { Passengers = p; }
public new void Speak() => Console.WriteLine("Di-di!"); // 遮蔽基類別方法
}
: base(參數) 在衍生類別建構子中初始化基類別狀態。base.方法名() 或 base.屬性名。override 方法中透過 base.Method() 保留基類別邏輯。base() 導致基類別未正確初始化。new 遮蔽而非 override 覆寫,破壞多態行為。base(編譯錯誤)。