Object Oriented Programming - Encapsulation, Polymorphism and Inheritance.