跳转至

继承中构造函数的执行顺序#

来源:D:\study\C#1\stu0724\继承类的构造函数

new Student() 创建子类实例时,构造函数的调用顺序是:先父类,后子类。如果存在多层继承,从最顶层基类开始逐层向下执行。

示例#

class People   // 基类
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }

    public People()
    {
        Console.WriteLine("");  // 父类构造函数
    }
}

class Student : People   // 子类
{
    public int StuId { get; set; }

    public Student()
    {
        Console.WriteLine("stu构造");  // 子类构造函数
        // 子类可以直接操作父类的属性和字段
        Id = 12;
    }
}

执行顺序说明#

new Student()
  ├─ 1. 执行父类 People 的构造函数(默认调用无参构造函数)
  └─ 2. 执行子类 Student 的构造函数体
        └─ 子类中可以直接使用父类的属性:Id = 12;

多层继承的执行顺序#

new SmallStu()   // SmallStu → Student → People
  ├─ 1. People 构造函数    (最顶层基类)
  ├─ 2. Student 构造函数
  └─ 3. SmallStu 构造函数  (最底层子类)

总结:子类构造之前,父类一定已经构造完成。子类可以自由使用父类中 public / protected 的字段和属性。



相关笔记#