Difference Between
Encapsulation and Abstraction
What is encapsulation?
Encapsulation is the process of hiding irrelevant data from the user.
To understand encapsulation, consider an example of mobile phone.
Whenever you buy a mobile, you don’t see how circuit board works. You
are also not interested to know how digital signal converts into analog
signal and vice versa. These are the irrelevant information for the
mobile user, that’s why it is encapsulated inside a cabinet.
In C# programming, we will do same thing. We will create a cabinet
and keep all the irrelevant information in it that will be unavailable
for the user.
Encapsulation
is wrapping, just hiding properties and methods. Encapsulation is used
for hide the code and data in a single unit to protect the data from the
outside the world. Class is the best example of encapsulation.
What is abstraction?
Abstraction is just opposite of Encapsulation. Abstraction is
mechanism to show only relevant data to the user. Consider the same
mobile example again. Whenever you buy a mobile phone, you see their
different types of functionalities as camera, mp3 player, calling
function, recording function, multimedia etc. It is abstraction, because
you are seeing only relevant information instead of their internal
engineering.
We use
abstraction in programming languages to make abstract class. Abstract
class represents abstract view of methods and properties of class.
Implementation Difference Between Encapsulation and Abstraction
1. Abstraction
is implemented using interface and abstract class while Encapsulation
is implemented using private and protected access modifier.
2. OOPS
makes use of encapsulation to enforce the integrity of a type (i.e. to
make sure data is used in an appropriate manner) by preventing
programmers from accessing data in a non-intended manner. Through
encapsulation, only a predetermined group of functions can access the
data. The collective term for datatypes and operations (methods) bundled
together with access restrictions (public/private, etc.) is a class.
3. Example of Encapsulation
Class Encapsulation
{
private int marks;
public int Marks
{
get { return marks; }
set { marks = value;}
}
}
4. Example of Abstraction
abstract class Abstraction
{
public abstract void doAbstraction();
}
public class AbstractionImpl: Abstraction
{
public void doAbstraction()
{
//Implement it
}
}