Voici les brèves définitions de l'encapsulation et de l'abstraction.
L'abstraction :
Le processus d'abstraction en Java est utilisé pour cacher certains détails et ne montrer que les caractéristiques essentielles de l'objet. En d'autres termes, il s'agit de la vue extérieure d'un objet (interface). Le seul bon exemple que je vois à travers différents sites est interface.
Encapsulation :
Il s'agit essentiellement de cacher l'état de l'objet avec l'aide de modificateurs comme private, public, protected etc. Nous exposons l'état à travers des méthodes méthodes publiques uniquement si nécessaire.
Ce que nous obtenons avec des modificateurs comme private
, public
cache également les détails inutiles du monde extérieur qui n'est rien d'autre qu'un concept d'abstraction.
Donc, d'après l'explication ci-dessus, il semble que l'encapsulation soit une partie de l'abstraction ou nous pouvons dire que c'est un sous-ensemble de l'abstraction. Mais pourquoi alors le terme encapsulation est inventé alors que nous pourrions le traiter avec l'abstraction seulement ? Je suis sûr qu'il devrait y avoir une différence majeure qui les distingue mais la plupart des documents sur le net disent presque la même chose pour les deux.
Bien que cette question ait déjà été soulevée sur ce forum, je la pose à nouveau avec des doutes spécifiques. Certaines réponses disent également que l'abstraction est un concept et que l'encapsulation est une mise en œuvre. Mais je n'achète pas cela - Si c'est vrai, alors je peux penser que ces deux concepts différents sont fournis pour nous confondre.
Mise à jour:- Après 5 ans, j'ai trouvé ma propre réponse qui est l'essentiel basé sur les réponses de ce post et ceux ci-dessous.