this指定调用构造函数完了,为什么还会执行没有指定的构造函数?

class BaseClass

{


    public BaseClass()

    {

        Console.WriteLine("基类构造函数");

    }

    public BaseClass(string str)

    {

        Console.WriteLine("基类构造函数,参数:{0}",str);

    }

}

class Something:BaseClass

{

   //设定SomeClass类不带参数的构造函数自动调用SomeClass(string str)构造函数,

    //并未str参数提供一个默认值:Something

    public Something():this("something")

    {

        Console.WriteLine("调用Something()构造函数");

    }

    //设定SomeClass(string str)构造函数自动调用SomeClass(string str,int val)构造函数

    //并为val参数提供一个默认值:10

    public Something (string str):this(str,10)

    {

        Console.WriteLine("调用Something(string str)构造函数");

    }

    public Something(string str,int val)

    {

        Console.WriteLine("调用SomeClass(string str,int val)构造函数");

    }


}

class ClassExample

{

    public static void Main()

    {

        Something child = new Something("something");

        Console.Read();

    }

}

//初始化类的时候使用的是SomeClass(string str)构造函数,因此会先调用SomeClass(string str, int val)构造函数,这里程序应该执行完了,为什么还会继续执行SomeClass(string str )构造函数?


杨__羊羊
浏览 420回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java