Difference between Abstraction and Encapsulation in C++

Abstraction:
In OOPs, Abstraction is that the method of getting info. the information needed will be taken in such the simplest way that solely the required components are extracted, and also the ones that are considered less significant are unnoticed. Or the unessential info will be drained dead set keep solely the sensitive information intact. during this case, most of the classes don’t have any sort of implementation, and most of the problem-solving method is completed at the interface stage. one thing that doesn’t exist and is just a concept is named Abstraction. In abstraction, implementation complexities are hidden using abstract classes and interfaces.

Example of Abstraction:

filter_none

edit
close

play_arrow

link
brightness_4
code

#include <iostream>
using namespace std;
  
class Summation {
private:
    // private variables
    int a, b, c; 
public:
    void sum(int x, int y)
    {
        a = x;
        b = y;
        c = a + b;
        cout<<"Sum of the two number is : "<<c<<endl;
    }
};
int main()
{
    Summation s;
    s.sum(5, 4);
    return 0;
}

chevron_right


Output:



Sum of the two number is: 9 

In the this example, we can see that abstraction has achieved by using class. The class 'Summation' holds the private members a, b and c, which are only accessible by the member functions of that class.

Encapsulation:
Encapsulation is the process or method to contain the information. The info, it provides is that the solely the one that is critical and every one the opposite data that is unsuitable is hidden already. during this case, the matter determination is completed at the stage of implementation. Encapsulation is a method to hide the data in a single entity or unit along with a method to protect information from outside. Encapsulation keeps something in an exceedingly capsule and showing of solely the essential options of a product. for example, once someone is mistreatment software package they are doing not recognize what the secret writing is, they solely use the mandatory functions that result from the secret writing that is unbroken safe within the files.

Example of Encapsulation:

filter_none

edit
close

play_arrow

link
brightness_4
code

#include <iostream>
using namespace std;
  
class EncapsulationExample {
private:
    // we declare a as private to hide it from outside
    int a; 
  
public:
    // set() function to set the value of  a
    void set(int x) 
    {
        a = x;
    }
  
    // get() function to return the value of a
    int get() 
    {
        return a;
    }
};
  
// main function
int main() 
{
    EncapsulationExample e1;
  
    e1.set(10);
  
    cout<<e1.get();
    return 0;
}

chevron_right


Output:

10

In the this program, the variable a is made private so that this variable can be accessed and manipulated only by using the methods get() and set() that are present within the class. Therefore we can say that, the variable a and the methods set() as well as get() have binded together that is nothing but encapsulation.

Difference between Abstraction and Encapsulation:

S.NO Abstraction Encapsulation
1. Abstraction is the process or method of gaining the information. While encapsulation is the process or method to contain the information.
2. In abstraction, problems are solved at the design or interface level. While in encapsulation, problems are solved at the implementation level.
3. Abstraction is the method of hiding the unwanted information. Whereas encapsulation is a method to hide the data in a single entity or unit along with a method to protect information from outside.
4. We can implement abstraction using abstract class and interfaces. Whereas encapsulation can be implemented using by access modifier i.e. private, protected and public.
5. In abstraction, implementation complexities are hidden using abstract classes and interfaces. While in encapsulation, the data is hidden using methods of getters and setters.
6. The objects that help to perform abstraction are encapsulated. Whereas the objects that result in encapsulation need not be abstracted.



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :
Practice Tags :


1


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.