The final pillar of object-oriented programming is known as polymorphism, from the Greek word that stands for “many shapes.” In fact, when talking about inheritance, we have already seen most of the polymorphic principles illustrated at the level of member declarations. More specifically, the virtual and override keywords are at the heart of the principle of polymorphism. What we haven’t talked about yet is the different uses it allows. So far, we’ve used
override to be able to specialize a class:
To use this counter, we could simply write the following:
However, in addition to this, the principle of polymorphism enables ...