Object-Oriented Programming has the following advantages over conventional approaches:

  • OOP provides a clear modular structure for programs which makes it good for defining abstract data types where implementation details are hidden and the unit has a clearly defined interface.
  • OOP makes it easy to maintain and modify existing code as new objects can be created with small differences to existing ones.
  • OOP provides a good framework for code libraries where supplied software components can be easily adapted and modified by the programmer. This is particularly useful for developing graphical user interfaces.

Demerits of Object Oriented Programming

  • Unfamiliarity (causing an added training cost for developers).
  • Inability to work with existing systems
  • Data and operations are separated
  • No data abstraction or info hiding
  • Not responsive to changes in problem space
  • Inadequate for concurrent problems