using System;
class A
{
//静态构造函数用来初始化类的静态成员,使用类A时会自动调用,且不管该类有多少实例对象,该函数只执行一次
static A()
{
Console.WriteLine("类A静态构造函数被调用");
}
public A()
{
Console.WriteLine("类A默认构造函数被调用");
}
public A(int i)
{
Console.WriteLine("类A带参构造函数被调用");
}
}
class B:A
{
public B()
{
Console.WriteLine("类B默认构造函数被调用");
}
public B(int i):base(i)//base关键字,指定调用基类某个版本的构造函数
{
Console.WriteLine("类B带参构造函数被调用");
}
}
public class Test
{
static void Main()
{
//类A实例化了两次,但其静态构造函数只执行了一次
A a = new A();
A a1 = new A();
Console.WriteLine();
//实例化类B的时候,会首先调用其基类A的默认构造函数;当需要指定调用基类其他版本构造函数时,需用base关键字
B b = new B();
B b1 = new B(100);
}
}