It's one of the best features of object oriented programming. it's like restricting access of data members to a the entire program so that the hidden data can only be accessed by the class member functions.
data hiding is a programming concept which protects the data from direct modification by other parts of the program. The feature of information hiding is applied using Class in most of the programming languages.
Data hiding is a software development technique specifically used in object-oriented programming (OOP) to hide internal object details (data members). Data hiding ensures exclusive data access to class members and protects object integrity by preventing unintended or intended changes.
Polymorphism uses data hiding when a sub class has the same field name as its superclass, if you create a object of sub class that's referenced by its parent class then the field in parent in used, if you create an object of sub class and is referenced by that sub class then the field in subclass is used and parent class field is hidden.