涉及属性,继承,构造函数的小程序
来源:互联网 发布:淘宝官方网站主页 编辑:程序博客网 时间: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负责的,我们应该避免编写需要以特定顺序调用类构造器的代码。类构造器不要调用其基类的类构造器。因为基类的静态成员并没有被派生类所继承,它只是编译时静态绑定。类构造器的调用顺序和实例构造器相似的,首先静态字段被初始化,然后在构造其中被重新赋值。*/