You now use inheritance and polymorphism.
Inheritance creates class hierarchies with shared code
virtual functions enable runtime polymorphism
Override base class behavior in derived classes
Abstract classes define interfaces with pure virtual functions
Good job. You can now build extensible class hierarchies. Next, you will learn file I/O to persist data.