namespace TeseApplication
{
class Program
{
static void Main(string[] args)
{
MyClass2 my = new MyClass2(3, 4);
Console.ReadLine();
}
}
public class MyClass
{
public MyClass()
{
Console.WriteLine("MyClass:默认构造函数");
}
public MyClass(int a, int b)
{
Console.WriteLine("MyClass带参构造:a={0}, b={1}.", a, b);
}
}
public class MyClass2 : MyClass
{
public MyClass2()
{
Console.WriteLine("MyClass2:默认构造函数");
}
public MyClass2(int a, int b)
{
Console.WriteLine("MyClass2带参构造:a={0}, b={1}.", a, b);
}
}
}
故构造顺序为:父类默认构造 =>子类具体构造
那如果我们想实现父类的具体构造,可以采用以下的写法
namespace TeseApplication
{
class Program
{
static void Main(string[] args)
{
MyClass2 my = new MyClass2(3, 4);
Console.ReadLine();
}
}
public class MyClass
{
public MyClass()
{
Console.WriteLine("MyClass:默认构造函数");
}
public MyClass(int a, int b)
{
Console.WriteLine("MyClass带参构造:a={0}, b={1}.", a, b);
}
}
public class MyClass2 : MyClass
{
public MyClass2()
{
Console.WriteLine("MyClass2:默认构造函数");
}
public MyClass2(int a, int b) : base(a, b)
{
Console.WriteLine("MyClass2带参构造:a={0}, b={1}.", a, b);
}
}
}
故构造顺序为:父类具体构造 =>子类具体构造
