首页 > 代码库 > C#构造函数的继承和引用方法 override
C#构造函数的继承和引用方法 override
大家都知道C#构造函数主要用来设置类中属性的初始值,但经常会忽视类的构造方法也可以象方法一样引用调用父类中的构造方法或本身的其他构造方法。往往因此写了很多重复代码。下面的代码介绍了类的构造方法的几种用法。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace practise1 { class Program { static void Main(string[] args) { TestCon con = new TestCon(); Console.WriteLine(con.ToString()); TestA testA1 = new TestA(); Console.WriteLine("测试类A无参数构造方法"); Console.WriteLine(testA1.ToString()); Console.WriteLine(); TestA testA2 = new TestA("Set First Param"); Console.WriteLine("测试类A一个参数构造方法"); Console.WriteLine(testA2.ToString()); Console.WriteLine(); TestB testB1 = new TestB(); Console.WriteLine("测试类B无参数构造方法"); Console.WriteLine(testB1.ToString()); Console.WriteLine(); TestB testB2 = new TestB("Set First Param"); Console.WriteLine("测试类B一个参数构造方法"); Console.WriteLine(testB2.ToString()); Console.WriteLine(); TestB testB3 = new TestB("Set First Param", "Set Second Param"); Console.WriteLine("测试类B两个参数构造方法"); Console.WriteLine(testB3.ToString()); Console.WriteLine(); TestB testB4 = new TestB("Set First Param", "Set Second Param", "Set Third Param"); Console.WriteLine("测试类B三个参数构造方法"); Console.WriteLine(testB4.ToString()); Console.WriteLine(); Console.ReadLine(); } class TestCon { private string _a = "_a1"; private string _b = "_b2"; } /// <summary> /// 测试类A /// </summary> class TestA { protected string _testValueA; /// <summary> /// 无参数构造方法 /// </summary> public TestA() : this("Set First Param") { } /// <summary> /// 一个参数构造方法 /// </summary> /// <param name="value"></param> public TestA(string value) { _testValueA = value; } /// <summary> /// 重新ToString方法 /// </summary> /// <returns></returns> public override string ToString() { return this._testValueA; } } /// <summary> /// 测试类TestB,从TestA类中继承 /// </summary> class TestB : TestA { protected string _testValueB; protected string _testValueC; /// <summary> /// 调用父类中的构造方法 /// </summary> public TestB() : base() { this._testValueB = "Set Second Param"; this._testValueC = "Set Third Param"; } /// <summary> /// 调用父类中的构造方法 /// </summary> /// <param name="valueA"></param> public TestB(string valueA) : base(valueA) { this._testValueB = "Set Second Param"; this._testValueC = "Set Third Param"; } /// <summary> /// 调用其他构造方法 /// </summary> /// <param name="valueA"></param> /// <param name="valueB"></param> public TestB(string valueA, string valueB) : this(valueA, valueB, "Set Third Param") { } /// <summary> /// 三个参数的构造方法 /// </summary> /// <param name="valueA"></param> /// <param name="valueB"></param> /// <param name="valueC"></param> public TestB(string valueA, string valueB, string valueC) { this._testValueA = valueA; this._testValueB = valueB; this._testValueC = valueC; } /// <summary> /// 重新ToString方法 /// </summary> /// <returns></returns> public override string ToString() { return this._testValueA + "\n" + this._testValueB + "\n" + this._testValueC; } } } }
C#构造函数的继承和引用方法 override
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。