C# Inheritance

Inheritance (C# Programming Guide)

class B 继承 class A,B 称为 derived class,A 称为 base class。

class A {}
class B : A {}

B 继承 A 除 constructors, finalizers 之外的成员。

只能直接继承一个 class。一个接一个的继承,形成一条继承链,比如 C:B:A,C 会继承 B 和 A 的成员。

Constructors

derived class constructors 通过 base 调用 base class constructors。 constructors 的参数可以传给 base。 如果没有 base, 默认以 base() 调用 base class default constructor。

class A {}

class B : A {
    public B(int i) {}  // 即 public B(int i) : base() {}
}

class C : B
{
    public C(int i) {}  // 即 public C(int i) : base() {}
}

static void Main() {
    var b1 = new B();     // Error
    var b2 = new B(100);  // Ok
    var c1 = new C();     // Error
    var c2 = new C(100);  // Error
}