Abstraction means we focus on the essential qualities of something rather than one specific example. Generalize instead of going into details.
The idea of taking our attributes and then taking our behaviors and bundling them together in the same unit. We also want to restrict access to the inner workings. “I don’t care how it is done, as long as I call this method with these parameters, I get this result back.”
When creating a new class, instead of writing it from scratch, we can base it on an existing class. The child class can inherit the properties of a parent class.
Taking on many forms. A child class in override a parent method to provide a more specialized version of the method.