涉及属性,继承,构造函数的小程序

来源:互联网 发布:淘宝官方网站主页 编辑:程序博客网 时间:2024/05/16 04:41
using System;namespace 继承实验{    class Program    {        class dog        {            private int Age;            private string Name;            public static string HomeTown;            static dog()            {                HomeTown = "东北松花江上!"; //类构造器            }            public int GetAge            {                get { return Age; }                set { value = Age; }            }             public string GetName            {                get { return Name; }                set { value = Name; }            }            public dog(int Age)            {                this.Age = Age;         //实例构造器            }            public dog(string Name,int Age)                : this(Age)            {                this.Name = Name;            }        }        static void Main(string[] args)        {            dog d1 = new dog(5);            Console.WriteLine("我的名字是{0},今年{1}岁了,我的家乡在{2}", d1.GetName, d1.GetAge,dog.HomeTown);//如果实例构造器,没有            //初始化数据,值类型默认为0,引用类型默认为null            dog d2 = new dog("芭比", 5);            Console.WriteLine("我的名字是{0},今年{1}岁了,我的家乡在{2}", d2.GetName, d2.GetAge,dog.HomeTown);            Console.ReadLine();        }    }}/*实例对象初始化过程: 为实例分配内存;初始化附加成员,包括方法表指针和SyncBlockIndex变量(我们已经在 跟小静读CLR via C#(03)中已经提到过)。调用实例构造器进行初始化。 *//*类构造器适用于引用类型(包括接口)和值类型,用来设置类的初始状态。类中并没有默认产生的类构造器,需要我们显式构造类构造器只能有一个,不能进行重载。而且不能含参数。类构造器的目的是初始化类的静态成员,它只能访问静态成员,不能访问实例成员。类构造器的访问限制是私有的,但是我们不能在类构造器前添加访问修饰符,private也不行,否则会产生编译错误,这样做是为了防止开发人员调用该方法。它的调用是由CLR负责的,我们应该避免编写需要以特定顺序调用类构造器的代码。类构造器不要调用其基类的类构造器。因为基类的静态成员并没有被派生类所继承,它只是编译时静态绑定。类构造器的调用顺序和实例构造器相似的,首先静态字段被初始化,然后在构造其中被重新赋值。*/


 
原创粉丝点击