您当前的位置: 首页 > 

父类对象引用子类实例-父母代表孩子做事

发布时间:2010-11-22 15:42:00 ,浏览量:0

子类继承父类的属性和方法,使创建子类变得很简单,实现了代码重用。继承还有一个重要的特性,父类对象可以引用子类实例。也就是子类实例可以赋值给父类的对象变量。

这个特性可以这样理解:儿子继承父亲,儿子又把管理自己事务的权利交给父亲,那么父亲就可以代表儿子处理事务,这就是父类对象引用子类实例。现在生活中,父母可以代表儿子处理事务,总公司可以代表子公司生命权利。

父类指针要访问子类的成员的情况下,要强制类型转换。

父类的对象变量=new 子类类型;    ((子类类型)父类引用).子类变量

using System; class Father { private int _wealth = 5000; public void ShowWealth() {     Console.WriteLine("父亲拥有的财产{0}", this._wealth); } }

class Son: Father { public void PlayGame() {     Console.WriteLine("玩游戏"); } }

class Daughter: Father { public void Music() {     Console.WriteLine("听音乐"); } }

class Test { static void Main() {

    Father myfather1 = new Son();     myfather1.ShowWealth();     ((Son)myfather1).PlayGame();     Father myfather2 = new Daughter();     ((Daughter)myfather2).Music(); } }

别人的总结:

将子类对象赋值给父类对象,所得到对象是这样的一个对象: 它是一个编译是为父类对象,但运行却是一个子类对象。具体特征如下:   1.被声明为父类对象   2.拥有父类属性   3.占用子类的内存空间   4.子类方法覆盖父类的方法时,此时对象调用的是子类的方法;否则,自动调用继承父类的方法.   5.我人认为这个对象既不是父类对象,也不是子类对象.当我们用到它的方法时,   我便把它看成子类对象;若用到它的属性时,我把它看成父类对象.   它是一个占用父类属性,而使用子类方法的对象.至于到底是什么对象,我认为还是得根据声明来,它应算是父类对象,但拥有子类方法.

关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    104724博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0458s