C#子类和父类的构造顺序 - chunlieater/chunlifeet GitHub Wiki
子类和父类的构造顺序:
子类静态成员变量 -- 子类静态构造函数 -- 子类实例变量 -- 进入子类构造函数 -- 父类静态成员变量 -- 父类静态构造函数 -- 父类实例变量 -- 进入父类构造函数 --执行父类构造函数 -- 返回子类构造函数 --执行子类构造函数 。
- 例子:
-
public class Test {
-
public string Name = "";
-
public Test() {
-
Debug.Log("this is test");
-
}
-
public void PraintName() {
-
Debug.Log(Name);
-
}
-
}
-
public class Test2 : Test{
-
public string Name = "Chunli";
-
public Test2() {
-
Debug.Log("this is test2");
-
}
-
}
- 如果子类和父类的成员变量或者成员函数名字相同,则默认子类隐藏父类(效果同new关键字),就是说子类和父类的变量相互不受影响,如果用子类对象调用, 就调用子类的成员,如果用父类对象调用,就访问父类成员,如果用子类对象调用父类的成员函数,那么函数中默认调用的同名成员变量 也是父类的。
- override关键字可以覆盖父类的同名方法,覆盖后就算用多态调用改函数,访问的也是子类的函数,父类函数无法被访问(在子类内部可以通过base关键字调用)。