假设有一个基类A,另外有个继承A的子类B,当创建对象a时===A a = new B();a.PrintObj();===
用a去调用方法PrintObj(),在方法内部会出异常;因为dtObj没有被实例化;如果去掉A的无参构造函数里的
注释,调用正确;子类调用父类方法,方法类用到的对象必须先在无参构造函数中实例化
类A
class A
{
DataTable dtObj = null;
public A()
{
//dtObj = new DataTable();
Console.WriteLine("默认构造函数A");
}
public A(string value)
{
dtObj = new DataTable();
Console.WriteLine("带参数构造函数A");
}
public void PrintObj()
{
Console.WriteLine(dtObj.Rows.Count);
}
}
子类B:
class B:A
{
public B()
{
Console.WriteLine("默认构造函数B");
}
new public void Print()
{
Console.WriteLine("A");
}
}