abstraction, abstract class/operation

abstraction

a mental facility that permits humans to view real world problems with varying degrees of detail depending on the current context of the problem.

object-oriented [OO], object-oriented design concepts, themes
focuses on the essential, inherent aspects of an entity. focusing on what an object is and does (before how it should be implemented.) preserves freedom to make decisions as long as possible, no premature commitments to detail. during analysis: dealing only with application-domain concepts (not design or implementation decisions) proper use of abstraction allows the same model to be used for analysis, high-level design, program structure, database structure, documentation.

abstract class

a class that cannot have direct instances but whose descendants can have instances.

abstract operation

an operation defined but not implemented by an abstract class. The operation must be implemented by all concrete descendent classes.