abstraction is the principle of hiding complex implementation details and showing only the essential features of an object or system to the user. It focuses on "what" an object does rather than "how" it does it.