Object Oriented Programming is a problem solving technique to develop software systems. It’s a technique to think real world in terms of objects. Object maps the software model to real world concept. These objects have responsibilities and provide services to application or other objects. The characteristics of Object Oriented System’s are given below.

 

Abstraction

 

It allows complex real world to be represented in simplified manner. Example color is abstracted to RGB. By just making the combination of these three colors we can achieve any color in world. It’s a model of real world or concept.

 

Encapsulation

 

The process of hiding all the internal details of an object from the outside world.

 

Communication

 

Using messages when application wants to achieve certain task it can only be done using combination of objects. A single object can not do the entire task. Example if we want to make order processing form. We will use Customer object, Order object, Product object and Payment object to achieve this functionality. In short these objects should communicate with each other. This is achieved when objects send messages to each other.

 

Object lifetime

 

All objects have life time. Objects are created, initialized, necessary functionalities are done and later the object is destroyed. Every object have there own state and identity, which differ from instance to instance.

 

Association

 

This is the simplest relationship between objects. Example every customer has sales. So Customer object and sales object have a association relation between them.

 

Aggregation

 

This is also called as composition model. Example in order to make a “Accounts” class it has use other objects example “Voucher”,” Journal” and “Cash” objects. So accounts class is aggregation of these three objects.

 

Inheritance

 

Hierarchy is used to define more specialized classes based on a preexisting generalized class. Example we have VEHICLE class and we can inherit this class make more specialized class like CAR, which will add new attributes and use some existing qualities of the parent class. Its shows more of a parent-child relationship .This kind of hierarchy is called inheritance.

 

Polymorphism

 

When inheritance is used to extend a generalized class to a more specialized class, it includes behavior of the top class (Generalized class).The inheriting class often implement a behavior that can be somewhat different than the generalized class, but the name of the behavior can be same. It is important that a given instance of an object use the correct behavior, and the property of polymorphism allows this to happen automatically.