C#继承构造函数实现浅析

开发 后端
C#继承构造函数是什么呢?C#继承构造函数存在的意义是什么呀?那么本文就向你介绍这方面的内容。

C#继承构造函数存在的意义:大家都知道C#构造函数主要用来设置类中属性的初始值,但经常会忽视类的构造方法也可以象方法一样引用调用父类中的构造方法或本身的其他构造方法。往往因此写了很多重复代码。下面的代码介绍了类的构造方法的几种用法。

C#继承构造函数的示例:

  1. using System;   
  2.  
  3. namespace TestApplication   
  4. {   
  5. class Test   
  6. {   
  7. static void Main(string[] args)   
  8. {   
  9.  
  10. TestA testA1 = new TestA();   
  11. Console.WriteLine("测试类A无参数构造方法");   
  12. Console.WriteLine(testA1.ToString());   
  13. Console.WriteLine();   
  14.  
  15. TestA testA2 = new TestA("Set First Param");   
  16. Console.WriteLine("测试类A一个参数构造方法");   
  17. Console.WriteLine(testA2.ToString());   
  18. Console.WriteLine();   
  19.  
  20. TestB testB1= new TestB();   
  21. Console.WriteLine("测试类B无参数构造方法");   
  22. Console.WriteLine(testB1.ToString());   
  23. Console.WriteLine();   
  24.  
  25. TestB testB2 = new TestB("Set First Param");   
  26. Console.WriteLine("测试类B一个参数构造方法");   
  27. Console.WriteLine(testB2.ToString());   
  28. Console.WriteLine();   
  29.  
  30. TestB testB3 = new TestB("Set First Param""Set Second Param");   
  31. Console.WriteLine("测试类B两个参数构造方法");   
  32. Console.WriteLine(testB3.ToString());   
  33. Console.WriteLine();   
  34.  
  35. TestB testB4 = new TestB("Set First Param",   
  36. "Set Second Param""Set Third Param");   
  37. Console.WriteLine("测试类B三个参数构造方法");   
  38. Console.WriteLine(testB4.ToString());   
  39. Console.WriteLine();   
  40.  
  41. Console.ReadLine();   
  42.  
  43. }   
  44.  
  45. }   
  46. /// <summary>   
  47. /// 测试类A---C#继承构造函数   
  48. /// </summary>   
  49. class TestA   
  50. {   
  51. protected string _testValueA;   
  52.  
  53. /// <summary>   
  54. /// 无参数构造方法 --C#继承构造函数  
  55. /// </summary>   
  56. public TestA():this("Set First Param")   
  57. {   
  58.  
  59. }   
  60.  
  61. /// <summary>   
  62. /// 一个参数构造方法 --C#继承构造函数  
  63. /// </summary>   
  64. /// <param name="value"></param>   
  65. public TestA(string value)   
  66. {   
  67. _testValueA = value;   
  68. }   
  69.  
  70. /// <summary>   
  71. /// 重新ToString方法   
  72. /// </summary>   
  73. /// <returns></returns>   
  74. public override string ToString()   
  75. {   
  76. return this._testValueA;   
  77. }   
  78. }   
  79.  
  80. /// <summary>   
  81. /// 测试类TestB,从TestA类中继承---C#继承构造函数   
  82. /// </summary>   
  83. class TestB : TestA   
  84. {   
  85. protected string _testValueB;   
  86. protected string _testValueC;   
  87. /// <summary>   
  88. /// 调用父类中的构造方法   
  89. /// </summary>   
  90. public TestB():base()   
  91. {   
  92. this._testValueB = "Set Second Param";   
  93. this._testValueC = "Set Third Param";   
  94. }   
  95. /// <summary>   
  96. /// 调用父类中的构造方法--C#继承构造函数   
  97. /// </summary>   
  98. /// <param name="valueA"></param>   
  99. public TestB(string valueA)   
  100. base(valueA)   
  101. {   
  102. this._testValueB = "Set Second Param";   
  103. this._testValueC = "Set Third Param";   
  104. }   
  105.  
  106. /// <summary>   
  107. /// 调用其他构造方法---C#继承构造函数   
  108. /// </summary>   
  109. /// <param name="valueA"></param>   
  110. /// <param name="valueB"></param>   
  111. public TestB(string valueA, string valueB)   
  112. this(valueA, valueB, "Set Third Param")   
  113. {   
  114.  
  115. }   
  116. /// <summary>   
  117. /// 三个参数的构造方法   
  118. /// </summary>   
  119. /// <param name="valueA"></param>   
  120. /// <param name="valueB"></param>   
  121. /// <param name="valueC"></param>   
  122. public TestB(string valueA, string valueB, string valueC)   
  123. {   
  124. this._testValueA = valueA;   
  125. this._testValueB = valueB;   
  126. this._testValueC = valueC;   
  127. }   
  128.  
  129. /// <summary>   
  130. /// 重新ToString方法 --C#继承构造函数  
  131. /// </summary>   
  132. /// <returns></returns>   
  133. public override string ToString()   
  134. {   
  135. return this._testValueA + "\n" + this._testValueB + "\n" + this._testValueC ;   
  136. }   
  137. }   
  138. }  

C#继承构造函数示例输出结果:

  1. 测试类A无参数构造方法   
  2. Set First Param   
  3.  
  4. 测试类A一个参数构造方法   
  5. Set First Param   
  6.  
  7. 测试类B无参数构造方法   
  8. Set First Param   
  9.  
  10. Set Second Param   
  11. Set Third Param   
  12.  
  13. 测试类B一个参数构造方法   
  14. Set First Param   
  15.  
  16. Set Second Param   
  17. Set Third Param   
  18.  
  19. 测试类B两个参数构造方法   
  20.  
  21. Set First Param   
  22.  
  23. Set Second Param   
  24. Set Third Param   
  25.  
  26. 测试类B三个参数构造方法   
  27. Set First Param   
  28.  
  29. Set Second Param   
  30. Set Third Param  

C#继承构造函数的基本情况就向你介绍到这里,希望对你学习和了解C#继承构造函数有所帮助。

【编辑推荐】

  1. C#构造函数与C++的区别浅析
  2. C#构造函数的运用浅析
  3. 学习C#构造函数的一点体会
  4. C#静态构造函数特点浅析
  5. C#静态构造函数学习心得浅析
责任编辑:仲衡 来源: 中国自学编程网
相关推荐

2009-08-13 18:36:36

C#继承构造函数

2009-07-31 15:44:02

C#静态构造函数

2009-08-14 09:15:28

C#调用构造函数

2009-08-13 17:38:42

C#构造函数

2009-09-18 09:02:45

CLR Via C#

2009-08-13 18:02:11

C#静态构造函数

2009-08-14 09:50:46

C#复制构造函数

2009-08-14 09:43:59

C#复制构造函数

2009-08-13 13:42:54

C#构造函数

2009-08-14 09:58:09

C#复制构造函数

2009-09-07 05:24:22

C#窗体继承

2009-08-13 17:30:30

C#构造函数

2009-08-13 18:10:31

C#静态构造函数

2009-08-13 18:26:35

C#继承构造函数

2009-08-24 13:41:23

C# 泛型约束

2009-07-31 16:00:30

C#函数重载

2009-08-10 14:43:03

C#函数Convert

2009-07-31 14:03:21

C# Format函数

2009-07-31 14:15:38

C# 构造函数

2009-08-24 18:09:13

C#构造函数
点赞
收藏

51CTO技术栈公众号