Encapsulation in OOP is the practice of hiding internal implementation details while exposing only necessary functionality through a public interface. This bundling of data with methods that operate on that data, and controlling access through visibility modifiers (private, public, protected), enables information hiding and reduces system complexity. Options A and C describe type casting and exposure (the opposite of encapsulation), while B describes polymorphism.