public class MyDeriveClass
:MyBaseClass
{
public MyDeriveClass()
:base()
{
}
int derive_int = 1;
}
public class MyBaseClass
{
public MyBaseClass()
{
}
int base_int = 1;
}
var cls = new MyDeriveClass();
调用顺序以下:markdown
MyDeriveClass();ide
考虑MyBaseClass()中有一个属性A为abstract
在MyBaseClass()中能够直接操做这个属性A,
只须要(也应该如此设计)DeriveClass作好override函数
你须要注意的问题是:spa
在Field的声明处初始化 和 在构造函数中初始化 的顺序是不同的。
在Field的声明处初始化 老是比 构造函数要早执行,且早于基类的Field的声明处初始化和基类的构造函数。设计