C# 继承

继承(派生类和基类)

在 C# 中,可以从一个类继承字段和方法到另一个类。我们将“继承概念”分为两类:

  • 派生类(子类)- 从另一个类继承的类
  • 基类(父类)- 被继承的类

要从类继承,请使用 : 符号。

在下面的例子中,Car 类(子类)从 Vehicle 类(父类)继承字段和方法:

实例

class Vehicle  // 基类 (父类)  
{  
  public string brand = "Ford";  // Vehicle 字段  
  public void honk()             // Vehicle 方法  
  {                      
    Console.WriteLine("Tuut, tuut!");  
  }  
}  
  
class Car : Vehicle  // 派生类 (子类)  
{  
  public string modelName = "Mustang";  // Car 字段  
}  
  
class Program  
{  
  static void Main(string[] args)  
  {  
    // 创建一个 myCar 对象  
    Car myCar = new Car();  
  
    // 在 myCar 对象上调用 honk() 方法(来自 Vehicle 类)  
    myCar.honk();  
  
    // 显示 brand 字段的值(来自 Vehicle 类)和来自 Car 类的 modelName 的值  
    Console.WriteLine(myCar.brand + " " + myCar.modelName);  
  }  
}

亲自试一试

为什么以及何时使用“继承”?

- 它对于代码可重用性很有用:创建新类时重用现有类的字段和方法。

提示:另请参阅下一章多态性,它使用继承的方法来执行不同的任务。

sealed 关键字

如果您不希望其他类从某个类继承,请使用 sealed 关键字:

如果您尝试访问一个密封类,C# 将生成一个错误:

sealed class Vehicle 
{
  ...
}

class Car : Vehicle 
{
  ...
}

错误消息将类似于以下内容:

'Car': cannot derive from sealed type 'Vehicle'

('Car':不能从密封类型'Vehicle'派生)