Right choice is (a) abstraction
For explanation I would say: Abstraction allows only selective and applicable information to be made available while other information may be hidden. Abstraction reduces complexity between layers of implementation as only relevant information will be available to each layer. Encapsulation, inheritance and polymorphism are other properties of object oriented programming.