C# base派生类的构造函数

↘锁芯ラ 提交于 2020-02-11 01:36:47

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赋值完成");
    }
}

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!