What is Abstraction?
Abstraction is another good
feature of OOPS. Abstraction means to show only the necessary details to the
client of the object. Do you know the inner details of the Monitor of your PC?
What happen when you switch ON Monitor? Does this matter to you what is
happening inside the Monitor? No Right, Important thing for you is weather
Monitor is ON or NOT. When you change the gear of your vehicle are you really
concern about the inner details of your vehicle engine? No but what matter to
you is that Gear must get changed that’s it!! This is abstraction; show only
the details which matter to the user.
Let’s say you have a method "CalculateSalary" in your Employee class,
which takes EmployeeId as parameter and returns the salary of the employee for
the current month as an integer value. Now if someone wants to use that method.
He does not need to care about how Employee object calculates the salary? An
only thing he needs to be concern is name of the method, its input parameters
and format of resulting member, Right?
So abstraction says expose only the details which are concern with the user
(client) of your object. So the client who is using your class need not to be
aware of the inner details like how you class do the operations? He needs to
know just few details. This certainly helps in reusability of the code.
As I have generally seen developers are not very much comfortable with the database
programming. Let’s say you are designing a class that is used to interact with
the database and to perform some of database operations. Now client of your
class need not to be aware of database programming, he just need to be aware of
some of the details of your class and easily can perform the database
operations exposed by your class without deep knowledge of database programming.
The best thing of abstract is that this decouples the user of the
object and its implementation. So now object is easy to understand and maintain
also. As if there is any change in the process of some operation. You just need
to change the inner details of a method, which have no impact on the client of
class.
Comments
Post a Comment