1/实例化派生类时,需要先调用基类中的构造函数;
2/基类中没有定义构造函数,则系统会定义默认无参构造函数.如果添加有参构造函数,则默认的无参构造函数将会被覆盖,;
3/派生类实例化时,可以通过Base指定需要调用的构造函数,调用无参构造函数,可省略:base();
clerk基类
class clerk
{
public clerk()
{
System.Windows.Forms.MessageBox.Show("调用基类中的无参构造函数!");
}
public clerk(string a, string b, string c)
{
System.Windows.Forms.MessageBox.Show("调用基类中的有参构造函数!");
}
}
technical派生类
调用无参构造函数两种方式,这两种方式在实例化派生类时,均调用基类中的无参构造函数.
1/省略:base()
class Technical:clerk
{
public Technical(string m1, string m2,string m3)
{
MessageBox.Show("派生类构造函数被调用");
}
}
2/带:base()
class Technical:clerk
{
public Technical(string m1, string m2,string m3):base()
{
MessageBox.Show("派生类构造函数被调用");
}
}
main函数
static void Main()
{
Technical mytech = new Technical("zhangsan","wangwu","lisi");
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
4/派生类实例化时,如果需要调用基类中有参构造函数,则需要使用:base()将需要的参数进行传递;
基类clerk
class Technical:clerk
{
public Technical(string m1, string m2,string m3):base(m1,m2,m3)
{
MessageBox.Show("派生类构造函数被调用");
}
}
派生类technical
class Technical:clerk
{
public Technical(string m1, string m2,string m3):base(m1,m2,m3)
{
MessageBox.Show("派生类构造函数被调用");
}
}
main函数
static void Main()
{
Technical mytech = new Technical("zhangsan","wangwu","lisi");
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}