Abstraction is used to program objects, functions, etc. to be implementable for a wide variety of uses, instead of building everything completely from scratch. Abstract classes, functions, etc. are used as frameworks for more specific applications of any subclasses or subfunctions. This eliminates any irrelevant information in a particular module.
Answer: D