C# base派生类的构造函数

1,在子类中调用父类的默认构造函数(无参)(会先调用父类的,然后是子类的)

public class MyDerivedClass{
    public MyDerivedClass():base(){
        //do something
    }
}

在这里 :base()可以直接不写,因为默认会调用父类中的默认构造函数

2,调用有参数的构造函数

public class MyDerivedClass{
    public MyDerivedClass(string name):base(name){
        //do something
    }
}

案例:

//父类
class BaseClass
{
    private int x;
    protected int z;
    public BaseClass()
    {
        Console.WriteLine("base class 无参构造函数");
    }

    public BaseClass(int x)
    {
        this.x = x;
        Console.WriteLine("x赋值完成");
    }
}

//派生类
class DerivedClass:BaseClass
{
    private int y;
    public DerivedClass()//调用父类中无参的构造函数 当我们没有在子类的构造函数中显示声明调用父类的构造函数,默认会调用父类中的无参构造函数
    {
        Console.WriteLine("这个是DerivedClass 无参的构造函数");   
    }

    public DerivedClass(int x, int y):base(x)
    {
        this.y = y;
        base.z = 100;
        Console.WriteLine("y赋值完成");
    }
}
发布了229 篇原创文章 · 获赞 8 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/cuijiahao/article/details/104222398