些文参考
本文来自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指定了,就是继承指定基类构造函数。