【极客技术传送门】 : https://blog.csdn.net/Engineer_LU/article/details/135149485
【Q】什么是多态?
【A】解释如下 :
【Q】什么是向下转型?
【A】之前向上转型讲述儿子把混沌体体的真血移植给父亲,父亲阴差阳错下可以用儿子独有的能力,但在某一天,儿子遇到了问题,需要用到父亲的能力,那怎么办,此时父亲就要把真血移植给儿子,儿子就可以调用父亲的能力了
接下来列举几种向下转型后的情况
这时候可以看到,子类直接调用到了父类的能力。
这时候可以看到,子类直接调用的是自身的能力。
这时候可以看到,子类直接调用到了父类的能力。
这时候可以看到,子类直接调用的是自身的能力,也就是说无论父类的能力到底是不是虚函数,对于向下转型来说都一样的。
这时候可以看到,子类有自己的方法,即使向下转型后,仍然可以调用自己的方法
这时候看到,打印窗口异常了,阻塞住了,说明内存异常了,为什么会这样,因为向下转型前没有进行向上转型,因此不安全,找不到具体内存,那么接下来展示一个正确的向下转型过程。
> 这里46行加了 向上转型,这样向下转型后,父类就不担心与子类不一样了,因此转换安全。
子类没有改进父类的方法下,去调用该方法
子类直接调用到了父类的能力
子类有改进了父类的方法下,去调用该方法
子类直接调用的是自身的能力
子类没有改进父类虚函数的方法下,去调用该方法
子类直接调用到了父类的能力
子类有改进父类虚函数的方法下,去调用该方法
子类直接调用的是自身的能力,也就是说无论父类的能力到底是不是虚函数,对于向下转型来说都一样的
子类调用父类没有的方法,去调用该方法
子类有自己的方法,即使向下转型后,仍然可以调用自己的方法
子类的方法是虚函数,调用该方法
如果没有进行向上转型,内存异常,因此如果向下转型,务必先向上转型
重点 : 如果向下转型,务必先向上转型
技术交流QQ群 : 745662457
群内专注 - 问题答疑,项目外包,技术研究