类的继承(Inheritance)※
继承是面向对象三大特性之一,子类复用和扩展父类的成员,形成 is-a 关系。
基本语法※
public class Animal
{
public string Name { get; set; }
public virtual void Speak() { Console.WriteLine("..."); }
}
public class Dog : Animal // 继承
{
public override void Speak() { Console.WriteLine("Woof"); }
public void Fetch() { } // 子类新增
}
关键字※
- virtual:父类方法可被重写
- override:子类重写虚方法
- abstract:抽象成员,必须重写(见 抽象类和接口)
- sealed:禁止继承/重写
- base:调用父类成员
- protected:子类可见、外部不可见
构造链※
public Dog() : base() { } // 子类构造默认调用父类无参构造
多态※
Animal a = new Dog();
a.Speak(); // 输出 Woof(运行时根据实际类型调用)