继承允许子类获取父类的成员,实现代码重用;C#中通过“:”语法继承,支持单继承和接口多态,使用virtual/override重写方法,并可通过base调用父类构造函数。

继承是面向对象编程中的核心概念之一,在C#中,它允许一个类(子类)获取另一个类(父类)的字段、方法和属性。通过继承,可以实现代码重用,提升程序的可维护性和扩展性。
父类和子类的基本概念
父类(也叫基类)是被其他类继承的类,包含共用的功能或数据。子类(也叫派生类)是从父类继承而来的类,可以在继承的基础上添加新的成员或修改已有行为。
例如:
假设有一个“动物”类,它具有“名字”和“发出声音”的能力。狗和猫都可以看作是动物的一种,因此可以把“狗”和“猫”定义为“动物”的子类。
如何在C#中实现继承
在C#中使用冒号 : 来表示一个类继承自另一个类。
语法示例:
{
public string Name { get; set; }
public virtual void MakeSound()
{
Console.WriteLine("动物发出声音");
}
}
public class Dog : Animal
{
public override void MakeSound()
{
Console.WriteLine("汪汪!");
}
}
在这个例子中:
- Animal 是父类。
- Dog 是子类,继承自 Animal。
- Dog 类继承了 Name 属性,并重写了 MakeSound 方法以提供自己的实现。
关键点说明
virtual 和 override:
- 父类中想让子类重写的方法应标记为 virtual。
- 子类中使用 override 关键字来提供新的实现。
构造函数的继承:
- 子类不会自动继承父类的构造函数,但可以通过 : base() 调用父类构造函数。
示例:
public class Animal{
public Animal(string name)
{
Name = name;
}
public string Name { get; set; }
}
public class Dog : Animal
{
public Dog(string name) : base(name)
{
// 调用父类构造函数
}
}
注意事项
- C# 不支持多重继承(一个类不能继承多个类),但可以通过接口实现类似功能。
- 所有类默认继承自 object 类,这是 C# 类体系的根类。
- 可以使用 protected 成员让子类访问父类的特定字段或方法,但外部类无法访问。
基本上就这些。继承让代码更清晰、更有组织,合理使用能大幅提升开发效率。








