新-航 2021-11-12 11:15 采纳率: 100%
浏览 15
已结题

关于多态的向上转型问题

向上转型:父类对象引用指向子类对象
我刚开始学习多态的时候就这一句话把我弄混了,向上转型 不应该是从小到大吗,这个解释是:Animal a = new Dog(); 如果按照上面的那句话理解 就是父类对象的引用a 指向的子类对象; a本来好好的是父类类型, 结果指向了子类,这不是有大的指向小的吗? 这算什么向上转型啊;
直到我这个概念: 向上转型就是把子类对象的引用转换成父类类型,我看到这局话想了一下,觉得很有道理。我对这句话的理解是:a是子类对象的引用 转换成了父类类型 这个解释才合理啊
写这段话的主要目的就是给像我一样在学习多态时有这方面困惑的小伙伴 一个解决办法。

  • 写回答

2条回答 默认 最新

  • Admini$trat0r .net领域新星创作者 2021-11-12 11:35
    关注

    多态这一块举个例子吧
    Animal a = new Dog(); 或者Animal a = new Cat();
    可以直接a.doSomeThing();//比如叫
    所以不需要关心什么动物,直接叫就完事了
    这样添加一个动物也不用改a.doSomeThing();的代码
    可以看看简单工厂模式这个例子

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月20日
  • 已采纳回答 11月12日
  • 创建了问题 11月12日

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了