C#构造函数里的base和this

来源:互联网 发布:微信域名防封跳转系统 编辑:程序博客网 时间:2024/06/06 06:53

父类的构造函数总是在子类之前执行的。

public class BaseCircle {        public BaseCircle()        {            Console.WriteLine(" no arguments base constructor!!!");        }        public BaseCircle(double arg)        {            Console.WriteLine("double arg base constructor!!!");        }    }    public class SubCircle : BaseCircle {        public SubCircle():base()        {            Console.WriteLine("sub class no argument constructor,actually call base constructor !!!");        }        public SubCircle(double a):base(a)        {            Console.WriteLine("sub class with argument, actually call base double constructor!!!");        }        public SubCircle(int k):this(1,2)        {            Console.WriteLine("sub class with argument int k, actually call sub class constructor int i & j !!!");        }        public SubCircle(int i,int j)        {            Console.WriteLine("sub class with int i&j argument!!!!");        }    }static void Main(string[] args)        {            SubCircle s1 = new SubCircle();            SubCircle s2 = new SubCircle(1.1);            SubCircle s3 = new SubCircle(1);}输出结果: no arguments base constructor!!!sub class no argument constructor,actually call base constructor !!!double arg base constructor!!!sub class with argument, actually call base double constructor!!! no arguments base constructor!!!sub class with int i&j argument!!!!sub class with argument int k, actually call sub class constructor int i & j !!!












原创粉丝点击