Difference Between Abstraction and Encapsulation


Main Difference

Computer Programming is a vast field, and there are many terms which although are from general language but have different meanings in this technical software. Two similar names are called encapsulation and abstraction. In broad expressions abstraction is the process of removing an item from a set of others, for example, we remove salt from sea water. Encapsulation, on the other hand, is the process of putting something together at a safe place. The best example, in this case, would be the capsule which has medicine contained within it in some form. Abstraction therefore in the event of object oriented programming is the process by which the user is able to extract information which is deemed important and while doing so, ignore the information which is not essential for the current process. It can be termed as a fixated process of getting what is required. Encapsulation is the procedure of setting data in such a way that the material which is necessary should be visible already while the material which is not needed should not be visible to avoid any unnecessary issues. Both these terms are opposite to each other in a way that abstraction deals with the overall nature of a process while encapsulation deals with the process which results in the original character. To make these terms simpler for understanding, encapsulation focuses on implementing the structure and hiding the processes while abstraction deals with keeping both these separate. When it comes to problem-solving both of these, have different criteria. Abstraction deals with solving an issue at the initial level while encapsulation deals with problem-solving at the level of implementing. For a more complicated explanation regarding programming, Abstraction is keeping the implementation safe with the help of designing and abstract class. While Encapsulation is keeping the data safe with the aid of setters and getters. More detail can be given on these two terms and the explanation in the following paragraphs will help in understanding them correctly.

Comparison Chart

The process of obtaining information.The process of containing information.
The info required can be taken in such a way that only the necessary parts are extractedThe information it gives is the only the one which is necessary and all the other data which is irrelevant is hidden already
The problem is solved at the interface level.The problem is solved when the code is implemented.
A cellphone’s outer buttons can be considered as abstraction.The chip on which all the programming exists may be regarded as encapsulation.

Definition of Abstraction

For object-oriented programming, Abstraction is the process of obtaining information. The info required can be taken in such a way that only the necessary parts are extracted, and the ones which are considered less important are ignored. Or the unnecessary information can be drained out to keep only the sensitive data intact. In this case, most of the classes do not have any type of implementation, and most of the problem-solving process is completed at the interface stage. Classes for abstract are already present, and they can be used when we have to share common functions and therefore in abstraction, there is a possibility of creating new variables. This term can be explained better in the day to day usage, and the best definition will be the process of dealing with ideas only and no events. Something that does not exist and is only an idea is called Abstraction. There are different types of abstraction modes such as data, functional, synthetic, control, resource and storage abstraction and have separate ways to get created. All these factors help in presenting the statistics which are essential, and the information which is less important can be kept separately hidden from the main screen, this can also be called data hiding in plain language.


Definition of Encapsulation

Encapsulation is the process of containing information. The information it gives is the only the one which is necessary and all the other data which is irrelevant is hidden already. In this case, the problem solving is done at the stage of implementation. Sometimes it is considered as an extension of abstraction and is a process by which the material can be collected at one place, this is very different from information hiding and only shows the information which is deemed necessary. Therefore, it is used to hide the programming code from a layman. For a more general understanding of this concept, encapsulation is keeping something in a capsule and showing of only the essential features of a product. For example, when a person is using software they do not know what the coding is, they only use the necessary functions that result from the coding which is kept safe in the files.

Differencesin a Nutshell

  1. In Abstraction, the problem is solved at the interface level. In Encapsulation, the problem is solved when the code is implemented.
  2. In Abstraction, the lesser sensitive data is ignored, and only the important one is collected while in Encapsulation all the information is kept in a single place and only the simpler one is shown.
  3. In Abstraction, the focus is on the idea instead of the details of the process. In Encapsulation, the hidden details of how the process took place are hidden from the user.
  4. All the variables that help in performing abstraction are encapsulated, but all the objects that result in encapsulation do not need to be abstracted.
  5. A cellphone’s outer buttons can be considered as abstraction while the chip on which all the programming exists in the internal structure of a cell phone may be regarded as encapsulation.


Abstraction and Encapsulation are two terms which are very different from each other and that is what this article has done, explained the main differences between them in a proper way so that people do not find it tough to get the meanings right and hopefully, that tasks has been achieved through this platform.

Harlon Moss

Harlon currently works as a quality moderator and content writer for Difference Wiki. He graduated from the University of California in 2010 with a degree in Computer Science. Follow him on Twitter @HarlonMoss