构造方法重载

什么是构造方法重载

构造方法重载允许我们在创建对象时使用不同的方式来初始化对象的状态。比如,我们可以定义一个不带参数的构造方法来创建默认对象,也可以定义一个带参数的构造方法来创建特定状态的对象。

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }

    /// <summary>
    /// 默认构造方法
    /// </summary>
    public Person()
    {
        Name = "Unknown";
        Age = 0;
    }

    /// <summary>
    /// 带参数的构造方法
    /// </summary>
    public Person(string name, int age)
    {
        Name = name;
        Age = age;
    }
}

使用这些构造方法创建 Person 对象:

class Program
{
    static void Main(string[] args)
    {
        Person p1 = new Person();  // 使用不带参数的构造方法创建默认对象
        Person p2 = new Person("John", 30);  // 使用带参数的构造方法创建指定状态的对象
    }
}

代码示例

public class MyClass
{
    private string name;
    private int age;

    /// <summary>
    /// 默认构造方法
    /// </summary>
    public MyClass()
    {
        this.name = "";
        this.age = 0;
    }

    /// <summary>
    /// 带一个参数的构造方法
    /// </summary>
    public MyClass(string name)
    {
        this.name = name;
        this.age = 0;
    }

    /// <summary>
    /// 带两个参数的构造方法
    /// </summary>
    public MyClass(string name, int age)
    {
        this.name = name;
        this.age = age;
    }
}

在上面的示例中,MyClass 类具有三个构造方法,分别是默认构造方法、带一个参数的构造方法和带两个参数的构造方法。每个构造方法都执行不同的操作来初始化 nameage 字段。在创建 MyClass 对象时,可以根据需要使用不同的构造方法来初始化对象。

class Program
{
    static void Main(string[] args)
    {
        MyClass obj1 = new MyClass();             // 使用默认构造方法创建对象
        MyClass obj2 = new MyClass("Tom");        // 使用带一个参数的构造方法创建对象
        MyClass obj3 = new MyClass("John", 30);   // 使用带两个参数的构造方法创建对象
    }
}