无论你掌握的是基类还是子类指针都不能调用private。只能调用public。
要想实现你所说的,可以定义一个public的虚方法。基类实现为空,子类实现为调用那个private方法。如此一来就根本不需要类型强转了。因为当真实对象实际是子类的时候,哪怕用基类指针保存这个对象,也能够调用到正确的虚方法。
题主对面向对象的多态性基础知识还需要学习。