After having understood the basics that define the Object-Oriented paradigm we will now look more in depth into two of its most important properties: inheritance hierarchies and polymorphism.