关于C#中派生类调用基类构造函数的理解 base使用

些文参考

本文来自CSDN博客,http://blog.csdn.net/cj205/archive/2008/12/05/3449828.aspx

只是用来记录,已防止时间长了忘记,同时也可以给需要的同学用。

原文写的已经很好了,只不过第3、4运行会有错误,试一下就知道了。

我改造了一下。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            MyDerivedClass my = new MyDerivedClass();
            MyDerivedClass my1 = new MyDerivedClass(1);
            MyDerivedClass my2 = new MyDerivedClass(1,2);
            Console.Read();
        }
    }

    public class MyBaseClass
    {
        public MyBaseClass()
        {
            Console.WriteLine("我是基类无参数的构造函数");
        }
        public MyBaseClass(int i)
        {

            Console.WriteLine("我是基类带一个参数的构造函数");

        }

    }

    public class MyDerivedClass : MyBaseClass
    {

        public MyDerivedClass()
            :base()
        {

            Console.WriteLine("我是子类无参构造函数\n");

        }

        public MyDerivedClass(int i)
            :base(i)
        {

            Console.WriteLine("我是子类带一个参数的构造函数\n");

        }

        public MyDerivedClass(int i, int j)
        {

            Console.WriteLine("我是子类带二个参数的构造函数\n");

        }

    }
}

运行结果 

从代码和运行结果中可以看出

派生类构造函数如果没有使用base就默认继承基类无参构造函数,如果用base指定了,就是继承指定基类构造函数。

原文地址:https://www.cnblogs.com/stalwart/p/3009408.html