温故知新(4)派生类的构造函数

来源:互联网 发布:小银子淘宝店铺怎么样 编辑:程序博客网 时间:2024/05/16 14:07

public DerivedClass():base()

1、作为派生类在使用构造函数时,会有多个构造函数起作用。

2、调用派生类中的构造函数时,先调用父类里的构造函数再去调用子类里的构造函数(自上而下)。

3、如果在子类中不显示声明调用父类里的构造函数,默认会调用父类里的无参构造函数。

4、构造函数分为无参构造函数有参构造函数

【注】构造函数修饰符必须是public,不能是private,否则由于无法访问基类不带参的构造函数,编译时也会报错

无参构造函数

 class  MyClass {     public MyClass()     {         Console.WriteLine("父类里的构造函数");     } } class DerivedClass : MyClass {     public DerivedClass():base()//:base()可写不可写     {         Console.WriteLine("子类里的构造函数");     } } class Program {     static void Main(string[] args)     {         DerivedClass myClass1 = new DerivedClass();         Console.ReadKey();     } }

有参构造函数

一旦为类定义了构造函数。无论是否带有参数,那么类都不会再自动生成默认的构造函数。
所以,这时就要自己写这个默认的不带参数的构造函数,或通过给base传递参数来告诉编译器指定基类的构造函数。

 class MyClass {    public MyClass()    {        Console.WriteLine("父类里的构造函数");    }     public MyClass(string name)     {        Console.WriteLine("父类里的构造函数"+name);     } } class DerivedClass : MyClass {     public DerivedClass(string str):base("Test")//base()可写不可写     {        Console.WriteLine("子类里的构造函数"+str);     } } class Program {     static void Main(string[] args)     {         DerivedClass myClass1 = new DerivedClass("xxx");         Console.ReadKey();     } }

原创粉丝点击