您当前的位置: 首页 >  c#

C#怎么理解“父类引用指向子类对象”

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

父类代码如下: public class Person { //父类的构造函数 public Person() { Console.WriteLine("Person"); } //父类的虚方法 public virtual void virFun() { Console.WriteLine("Person's Fun"); } } 子类代码如下: public class Son1:Person//继承 { //子类Son1的构造方法 public Son1() { Console.WriteLine("Son1"); } //重写父类的虚方法 public override void virFun() { Console.WriteLine("Son's Fun"); } } 测试类代码如下: class Test { static void Main(string[] args) { Console.WriteLine("只是创建子类对象:"); Son1 s = new Son1(); s.virFun(); Console.WriteLine("父类对象指向子类引用:"); Person p = new Son1(); p.virFun(); } } 我只创建子类对象指向子类本身,和父类对象指向子类引用,运行的结果是相同的,均为: Person Son1 Son's Fun 那么创建一个父类对象,却指向子类,所谓的这个父类对象指向子类引用(跟TM绕口令似的) Person p = new Son1(); 就是这行, 究竟有什么用途,为什么要用它?我直接用子类对象不完了?什么时候用它,它究竟是什么含义,能解决什么?谁能帮我生动的解释一下,还有分析一下程序的运行过程,我不理解。 非常感谢!

Person p=new Son1()就是相当于子类向上转型;
也可以写成下面这样:
Person p=new Person();
Son1 s=new Son1();
p=s;
将子类对象赋给父类对象就是向上转型,Person p=new Son1()中的new Son1()就是实例化一个没有名字的对象,然后转型给父类声明的对象p,仅次而已。
关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    106485博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

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

微信扫码登录

0.0539s