Object-orientation has so many advantages but I believe there may be some drawbacks so I searched for it and found some. I read that these problems encountered when applying the object-oriented approach to software problem include:
1) Resource Demand
Since an object-oriented program can require a much greater processing overhead than one written using traditional methods, it may work more slowly. This is not a good selling point from a customer's perspective.
2) Object Persistence
An object's natural environment is in RAM as a dynamic entity. This is in contrast to traditional data storage in files or databases where the natural environment of the data is an external storage. This causes problems when we want objects to persist between runs of a program, even more so between different applications.
3) Reusability
It is not easy to produce reusable objects between applications when inheritance is used, since it makes their class closely coupled to the rest of the hierarchy. With inheritance, objects can become too application specific to reuse. It is extremely difficult to link together different hierarchies, making it difficult to coordinate very large systems.
4) Complexity
The message passing between many objects in a complex application can be difficult to trace and debug.
All of these problems are easily outweighed by the potential benefits of object technology. As the technique matures and develops, it becomes more and more pervasive in all aspects of computing, to the point where it will become impossible to ignore. All of these problems are not the problems I think...