Xpode.com        Click here to Print this article.

Abstraction

A bstraction means to hide the internal details and show only essential features to the user which is required to be known by him in order to operate the system.

Consider an example of TV. It has various features like changing the channel, volume control, ON/OFF switch etc. Various interfaces are provided to the user so that he can operate the TV, like channel changer, volume controller, power button etc. Thus the user knows the interfaces to control the functionality of the TV but he does not know how these interfaces are working internally i.e. the internal details of the interfaces. The internal detailed functionality of the TV is kept hidden from the user. He is just provided only with the essential features so that he can operate the TV. So a non-technical person can operate the TV easily. This is the concept of Abstraction.

Similarly in case of OOPs classes use the concept of abstraction. A class contains data and functions to operate on that data. The user is provided with the interfaces i.e. function names to operate on data but he does not know how the function is being implemented internally.

For example:

Suppose there is one data member ‘a’ in the class. There is a member function ‘square ( )’ in the class. This function is calculating the square of ‘a’. User knows that the function ‘square ( )’ is calculating square of the value provided by him in ‘a’. But he does not know the implementation details of the function i.e. the function can find the square using any of the following ways-

a * a OR
pow(a,2) OR
a+a+a+a

But the user will not know that which method is being used. Thus the concept of abstraction is being implemented.

Abstraction is useful both to the user as well as to the programmer of the class. User does not have to know the complex implementation details of the function and the programmer can make any change in the implementation of the function without changing the interface i.e. function name.



http://
http://

Contributed by:
Rohit kakria
I am software developer, moderator of xpode.com

Resourse address on xpode.com
http://www.xpode.com/Print.aspx?Articleid=28

Click here to go on website