C#中的构造函数也可以应用方法重载。C#中有默认构造函数,也可以定义带参数的构造函数。构造函数必须与类同名,并且不能有返回值。所以C#构造函数重载相当于不同数量的参数方法重载。
using System;
class Animal{ public string _name;public string _color;public int _speed;public Animal(){ this._speed = 30;}public Animal(string name, string color){ this._name = name; this._color = color;}public Animal(string name, string color, int speed){ this._name = name; this._color = color; this._speed = speed;}}class Program
{ static void Main(string[]args){ //方法一 Animal animal1 = new Animal(); animal1._name = "兔子"; animal1._color = "灰色"; //animal1._speed = 40; Console.WriteLine( "调用默认构造函数输出动物为{0},颜色为{1},奔跑速度为{2}km/h",animal1._name, animal1._color, animal1._speed);
//方法二 Animal animal2 = new Animal("狗", "黄色"); Console.WriteLine("调用两个参数构造函数输出动物为{0},颜色为{1}", animal2._name, animal2._color); //方法三 Animal animal3 = new Animal("花猫", "白色", 20); Console.WriteLine( "调用三个参数构造函数输出动物为{0},颜色为{1},奔跑速度为{2}", animal3._name, animal3._color, animal3._speed); Console.WriteLine("一只" + animal3._color + "的" + animal3._name + "正在以" + animal3._speed + "km/h的速度在奔跑\n");Console.ReadLine();
}
}我们再看一个例子:
using System;
class Program{ private string _name;private int _age;private string _qualification;public Program(){ _age = 18;}public Program(string name, int age, string qualification){ this._name = name; this._age = age; this._qualification = qualification;}static void Main()
{ Program p = new Program(); Console.WriteLine("默认构造函数输出年龄为" + p._age); Program p1 = new Program("李公", 19, "大学"); Console.WriteLine("参数构造函数输出姓名为" + p1._name + ",年龄为" + p1._age + ",文化程度为" + p1._qualification);}}