Object-Oriented Programming is one of my favorite programming paradigms. OOP adds realism to the source code of the program. Four features, polymorphism, abstraction, encapsulation, and inheritance are very useful tools that are provided by this paradigm. OOP provides an ease to the programmers and this is one of the main reasons programmers prefer Object-Oriented paradigm.