在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
using System;
namespace Zoo { //************定义基类Animal public class Animal { static string baseClassName; //public string eatkind; protected string _skincolor; static Animal() { baseClassName="动物"; //eatkind="肉"; Console.WriteLine(baseClassName); //Console.WriteLine(eatkind); Console.WriteLine(); } public Animal() { Console.WriteLine("一只动物出生了!!!"); Console.WriteLine(); } protected Animal(string skincolor) { this._skincolor = skincolor; Console.WriteLine("这只动物的颜色为:" + this._skincolor); Console.WriteLine(); } }
//************定义子类Horse继承父类Animal public class Horse : Animal { public Horse()// : base() { _skincolor="赤兔马的红"; Console.WriteLine("一头小马驹出生了。。。。"); Console.WriteLine("这头小马驹的颜色为:"+this._skincolor); Console.WriteLine(); } double _weight; string _sex; public Horse(string skincolor,string sex,double weight):base(skincolor) { _skincolor = skincolor; _weight=weight; _sex=sex; //base._skincolor=skincolor; Console.WriteLine("一头小马驹出生了。。。。"); Console.WriteLine("这头小马驹为:"+this._sex); Console.WriteLine("这头小马驹的颜色为:"+this._skincolor); Console.WriteLine("这头小马驹的体重为:"+this._weight); Console.WriteLine(); } }
//************定义测试类Demo public class Demo { public static void Main(string[] args) { //Animal A=new Animal(); //Horse h=new Horse(); Horse hh=new Horse("纯白色","雄性",320); Horse hhh=new Horse("纯色","雌性",120);
} } } 测试Demo类中Main() 方法不同情况下的结果,研究构造函数的执行过程 1.只执行Animal A = new Animal(); 结果: 动物 一只动物出生了!!! 执行过程: 首先执行基类Animal的静态构造函数static Animal(),在实例化A时执行公共的无参构造函数public Animal(); 说明: 类的静态构造函数属于类所有,不必生成实例就可以访问,它是在载入包含类的应用程序时创建的,但静态构造函数不能访问类的实例变量。类的实例成员属于类的实例所有,没有创建实例对象就无法对其进行访问,实例成员可以访问类的静态成员和其它实例成员。类的静态成员属于该类,非静态成员则属于这个类的某个实例在一个类的实例对象的生命周期中最先执行的代码就是类的构造函数。构造函数是用来初始化对象的特殊类型的函数。 2.只执行Horse h=new Horse(); 结果:动物 一只动物出生了!!! 一头小马驹出生了……. 这头小马驹的颜色为:赤兔马的红 执行过程:首先执行基类Animal的静态构造函数static Animal(),再实例化基类Animal时执行公共的无参构造函数public Animal();再然后调用Horse类的无参构造函数public Horse() 3.只执行Horse h=new Horse("纯白色",”雄性”,320); 结果:动物 这只动物的颜色为:纯白色
一头小马驹出生了……. 这头小马驹为:雄性 这头小马驹的颜色为:纯白色 这头小马驹的体重为:320 执行过程:首先执行基类Animal的静态构造函数static Animal(),再实例化基类Animal时执行Protected带参构造函数public Animal(string skincolor);再然后调用Horse类的带参构造函数public Horse(string skincolor, string skincolor , double weight):base(skincolor) 4.只执行 Horse h=new Horse("纯白色", “雄性”, 320); Horse hh=new Horse("纯色", “雌性”, 120); 结果:动物 这只动物的颜色为:纯白色
一头小马驹出生了……. 这头小马驹为:雄性 这头小马驹的颜色为:纯白色 这头小马驹的体重为:320
这只动物的颜色为:纯色 一头小马驹出生了……. 这头小马驹为:雌性 这头小马驹的颜色为:纯色 这头小马驹的体重为:120 说明:类的静态构造函数在给定应用程序域中至多执行一次:只有创建类的实例或者引用类的任何静态成员才激发静态构造函数;
最后作一个总结: 2.静态构造函数,静态参数都是优先于非静态构造函数,非静态参数构造; 3.静态构造函数: 4.构造函数就是在创建类对象的时候调用,用来初始化类中的字段以及完成一些调用等工作
总算写完了,关于C#的构造函数的学习暂时就告一段落,接下来是接口的学习!
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ben_0788/archive/2008/06/07/2520230.aspx
|
请发表评论