为了账号安全,请及时绑定邮箱和手机立即绑定

为什么去掉基类的eat(),move()子类有 ,怎么不能直接调用子类的move()eat()??

为什么去掉基类的eat(),move()子类有 ,怎么不能直接调用子类的move()eat()??

正在回答

3 回答

类实例化过程中,使用父类指针指向子类对象时,指向的是继承的成员函数,子类对象特有的部分,父类对象无法实现访问。所以,这里是父类指针,当然不能直接调用子类的特有成员函数,因为父类中根本就没有。确定两者之间的从属关系后,再看这问题就容易多了。

0 回复 有任何疑惑可以回复我~

父类指针只能访问子类中的函数,且必须是这函数父类中有。

0 回复 有任何疑惑可以回复我~

因为你声明的是一个父类的指针,实例化为一个子类对象,子类的行为继承了父类,你去找一个父类并没有的行为特征,当然会找不到。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之多态篇
  • 参与学习       66236    人
  • 解答问题       314    个

本教程将带领大家体会面向对象三大特性中的多态特性

进入课程

为什么去掉基类的eat(),move()子类有 ,怎么不能直接调用子类的move()eat()??

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信