//继承 //被修饰为私有的private类不能被继承,但可以被实例化 // 被继承的类称为 基类 或 父类,继承的类称为 派生类 或 子类。 // 子类将获得基类除构造函数和析构函数以外的所有成员 //static 静态类不能被继承,但可以被实例化 //如果是抽象类public abstract,可以被继承,但不能被实例化 //父类的私有成员也会被子类继承,但子类不能直接访问私有成员。子类可以通过调用公有或者保护方法间接的对私有成员进行访问
实验子类的初始化顺序
//实验子类的初始化顺序
ChildA a = new ChildA();
a.Print();
//5.2.2 子类的初始化顺序
//使用了继承之后,当我们初始化一个子类时,除了会调用子类的构造函数之外,同时也会调用基类的构造函数,子类的初始化顺序如下:
//1. 初始化类的示例字段
//2. 调用基类的构造函数,如没有基类,调用 System.Object 的构造函数
//3. 调用子类的构造函数
public class Parent
{
//第二步 调用基类的构造函数
public Parent()
{
Console.WriteLine("基类构造函数被调用");
}
}
public class ChildA : Parent
{
//第一步 初始化他的示例字段
private int FieldA = 3;
public int FieldAA { get; set; }
//第三步 调用子类构造函数
public ChildA()
{
Console.WriteLine("子类构造函数被调用");
}
public void Print()
{
Console.WriteLine(FieldAA);
}
}