本帖最后由 wwwconsumer 于 2015-6-12 05:10 编辑
下面我将举一个引用符指向多个对象的例子来讲程序多态性。
我们先创造一个基类普通会员Sufei的类:
[C#] 纯文本查看 复制代码 class Sufei
{
//变量成员
public string name;
private int age;
public int Age
}
然后再创造一个继承普通会员基类Sufei的高级会员SufeiSenior:
[C#] 纯文本查看 复制代码 public SufeiSenior()
{
moneyValue++;
Console.WriteLine("我的会员金钱为:{0}",moneyValue );
powerValue++;
Console.WriteLine("我的会员等级为:{0}",powerValue);
}
然后再主程序中输入下列代码
[C#] 纯文本查看 复制代码 static void Main(string[] args)
{//申明类型为普通会员Sufei的引用符
Sufei someone;
//申明普通会员对象xiaomao
Sufei xiaomao = new Sufei();
xiaomao.Age = 26;
xiaomao.name = "xiaomao";
//申明高级会员对象wwwconsumer
SufeiSenior wwwconsumer = new SufeiSenior();
//访问派生类数据成员
wwwconsumer.Age = 40;
wwwconsumer.name = "wwwconsumer";
//让引用符指向xiaomao
someone = xiaomao;
Console.WriteLine("嗨,我是{0},我有{1}岁了。",someone .name ,someone .Age);
//让引用符指向对象wwwconsumer
someone = wwwconsumer;
Console.WriteLine("嗨,我是{0},我有{1}岁了。",someone .name ,someone .Age );
}
运行结果:
同一引用符指向不同的对象
看到了吗?同一引用符someone先后指向了普通会员xiaomao和高级会员wwwcosumer,而且指向普通会员时引用的普通会员的默认构造函数,没有任何提示;指向高级会员时引用了高级会员的构造函数,高级会员的构造函数中默认有提示金钱、等级等属性,故在运行中就将高级会员的这些属性显示出来了。 |