课程
/后端开发
/C++
/C++远征之多态篇
为什么去掉基类的eat(),move()子类有 ,怎么不能直接调用子类的move()eat()??
2018-03-11
源自:C++远征之多态篇 2-11
正在回答
类实例化过程中,使用父类指针指向子类对象时,指向的是继承的成员函数,子类对象特有的部分,父类对象无法实现访问。所以,这里是父类指针,当然不能直接调用子类的特有成员函数,因为父类中根本就没有。确定两者之间的从属关系后,再看这问题就容易多了。
父类指针只能访问子类中的函数,且必须是这函数父类中有。
因为你声明的是一个父类的指针,实例化为一个子类对象,子类的行为继承了父类,你去找一个父类并没有的行为特征,当然会找不到。
举报
本教程将带领大家体会面向对象三大特性中的多态特性