El encapsulamiento implica empaquetar las variables y métodos de un objeto para esconder sus detalles de implementación. Esto permite que los detalles de implementación cambien sin afectar otras partes del programa. Existen diferentes tipos de encapsulamiento como estándar, abierto, protegido, semi-cerrado y cerrado que definen qué clases pueden acceder a los miembros de una clase. El encapsulamiento protegido permite el acceso solo desde la clase y sus subclases, mientras que el semi-cerrado y cerrado restringen aún más el ac