C#类的继承,构造函数实现及其调用顺序

    技术2022-05-20  41

    类层层派生,在实例化的时候构造函数的调用顺序是怎样的? --从顶层基类开始向子类方向顺序调用无参构造.

    默认构造(无参构造)和带参构造什么时候调用?--默认将从顶层父类的默认构造一直调用到当前类的默认构造.

    下面是C#继承构造函数实现及调用示例:

    /**//*--===------------------------------------------===---  作者:许明会  日期:类的派生和构造函数间的关系,调用层次及实现  日期:2009年7月18日 17:30:43  若希望类能够有派生类,必须为其实现默认构造函数.  (重点)若类没有实现带参构造,编译器将自动创建默认构造函数.  若类实现了带参构造,则编译器不会自动生成默认构造.  --===------------------------------------------===---*/ using System;  //C#继承构造函数实现及调用 namespace xumh  {  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);  }  }   //C#继承构造函数实现及调用public class MyClass3 : MyClass2  {   public MyClass3()  {  Console.WriteLine("MyClass3:默认构造函数");  }  public MyClass3(int a, int b)  {  Console.WriteLine("MyClass3带参构造:a={0}, b={1}.", a, b);  }  }   public class runMyApp  {  static void Main()  {  MyClass3 my = new MyClass3(3,4);  }  }  }  //C#继承构造函数实现及调用/**//*--===------------------------------------------===---  输出如下:  MyClass:默认构造函数  MyClass2:默认构造函数  MyClass3带参构造:a=3, b=4.  --===------------------------------------------===---*/

    最新回复(0)