Object are the basic run time entities in the object oriented system. They may represent a person, a palace, a bank account, a table data or anything that a program can handle.
A class encloses both the data and function that operate on the data into a single unit.
3) Data abstraction and Encapsulation:
The wrapping of data and function in a single unit is know as encapsulation. It is a mechanism that associate into the single unit and keeps them safe from external interference and misuse.
Abstraction refers to the act of representing essential features without including the background details or explanations.
Inheritance is the process by which objects of one class acquire the properties of objects of another class.
Polymorphism means ability to take more then one form. For example as operation may execute different behaviour in different conditions. The behaviour depends on type of data used in operations.
6) Dynamic Binding:
Binding refers to the linking of a procedure call to be executed in response to the call. Dynamic binding means that the code associated with a given procedure call is not know until the time of call at run time. Virtual functions are the best examples of dynamic binding.
7) Message Communications:
An object oriented program consists of a set of objects that communicate with each other. Object
communicate with one another by sending data receiving information much same way as people passes messages to one another. A message for an object is a request for the execution of a procedure and therefore will invoke function in the receiving object that generates desire results.
It is a feature which allows the extension of the functionality of the existing software components.
It is a alternative to the class inheritance. Delegation is a way of making object composition as powerful as inheritance. In delegation two objects are invoked in handling a request, receiving object delegates operation to its delegate. This is analogues to the child class sending a request to the parent class.
It is a technique for defining software components that have more then one interpretation depending on the typoe of parameters.