继承中构造函数的执行顺序#
来源:
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的字段和属性。