C# 继承:父类对象引用子类实例的深入解析

📅 发布时间:2026/10/9 4:26:29
C# 继承:父类对象引用子类实例的深入解析
一、继承的基本概念子类继承父类的属性和方法使创建子类变得很简单实现了代码重用。继承还有一个重要的特性父类对象可以引用子类实例也就是子类实例可以赋值给父类的对象变量。这个特性可以这样理解儿子继承父亲儿子又把管理自己事务的权利交给父亲那么父亲就可以代表儿子处理事务这就是父类对象引用子类实例。在生活中父母可以代表儿子处理事务总公司可以代表子公司行使权利。二、类型转换与访问规则父类指针要访问子类的成员时需要强制类型转换。父类的对象变量 new 子类类型((子类类型)父类引用).子类变量三、代码示例下面通过一个完整的 C# 示例来演示父类对象引用子类实例的用法。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(); } }四、总结将子类对象赋值给父类对象所得到的对象是一个编译时为父类对象、运行时却是子类对象的实例。具体特征如下被声明为父类对象。拥有父类属性。占用子类的内存空间。子类方法覆盖父类的方法时此时对象调用的是子类的方法否则自动调用继承父类的方法。这个对象既不是纯粹的父类对象也不是纯粹的子类对象。当用到它的方法时可以把它看成子类对象若用到它的属性时可以把它看成父类对象。它是一个占用父类属性、而使用子类方法的对象。至于到底是什么对象还是应该根据声明来判断它应算是父类对象但拥有子类方法。