搜索
当前位置: sk彩票 > 对象型方法 >

向上转型后父类对象方法 为什么不调用本类即父类方法而调用子类

gecimao 发表于 2019-06-27 15:28 | 查看: | 回复:

  首先,从意义上讲,父类一般表示较抽象的概念,而子类表示更具体的概念。一旦你创建子类的实例,就表示你已经了解了它的具体特性,即便你向上转型,也只是表示你暂时不关注具体的特性,但这个实例仍然是具体化的。就好比你管理一家公司, 你一开始为所有员工制定了某项规章制度,后来发现A部门比较特殊,给他们另行制定了这项规章,这就相当于你为“员工”这个父类派生了“A部门员工”这个子类,并覆写了执行该规章的方法。现在你要号召该所有员工去执行该规章,你会向他们统一发号施令,但是A部门员工默认情况下仍然会按照你为他们制定的特别规章来实施,除非你刻意强调他们也按一般规章。 其次,在程序正确性的保证上,父类可以是一个抽象类,它的某个方法是虚函数,并没有给出实现,该方法在子类里才被实现。这个时候,你把一个子类向上转型再调用这个函数,如果去调用父类方法的话,程序就会面对这个没有被实现的虚函数而无法执行。所以,仍然要调用子类覆写的方法。 最后,从实现角度讲,向上转型之后,只不过改变了指针或者对象引用的类型,但它们所指向的内存中的实际对象的类型并没有改变,依然是子类的类型,所以调用方法仍然会是子类的。

本文链接:http://moodyjews.net/duixiangxingfangfa/709.html
随机为您推荐歌词
推荐文章

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部