As for the process of inheriting classes, from an abstraction to a gradual materialization , the base class can be very, very abstract, and the derived classes that are finally instantiated are very specific.
The meaning of virtual functions is that it is possible to define a function from the earliest base class to the final derived class (which can be either re-implemented or not re-implemented depending on the requirements, but pure virtual functions must be implemented, for reasons that I have already said in other articles) .
This feature constantly changes depending on the needs of the derived class as the derived class continues to inherit the base class. When we call virtual functions of different derived classes, we can have different functions. And then someone said, it's not as bad as every derived class has to rename a function on its own, in theory, absolutely, in a project where the parent class and its inherited classes are not many, it's perfectly possible to do so, as long as you can memorize it yourself or find the renaming function, but in a larger project, Because of the hundreds of functions in the class, I'm afraid you're going to freak out.
The understanding of C + + virtual function