These articles explain the object oriented concepts in detail. For many people object oriented concepts is just a buzz word, or they have basic understanding of it. But this word is actually very close to real life. One can relate many real life problems to object orientation. Same concept can be taken to software programming world. While building programs to serve a solution to real life problem, object oriented visualization will bring the solution more close to the problem.
Important benefit of object orientation of real life problem is, any change to the situation of problem can be easily converted into software as it is closely conected. Modifications, additions and removal of features from software is as good as throwing an object into dustbin in real life. Many languages support object oriented concepts now a days, partially or fully.
UML representation of most of the concept is provided in these articles. Also Java code examples are available to explain the concepts better. Here is the list of articles.
Abstraction : This post explains the concept of abstraction in detail, with examples of abstraction.
Inheritance: Many times we use inheritence, in many object oriented language. Also there is wide support for this object oriented concept, but what are details of it. How to visualize it in real life examples, is explained in this post. The concept is explained with simple examples.
Polymorphism: One of the complex object oriented concepts is polymorphism. It does change many things in object oriented programming. We understand this concept in this post with basic examples. Few code snippets are also used to explain this concept.
Encapsulation: Now a days it is also called modularization. This feature is important for information hiding. This post covers many aspects of encapsulation in detail.
In addition to general aspects of these concepts, experience based findings including advantages and disadvantages are detailed for each of the concept.