Is-a and Has-a abstraction

Two of the most important types of abstraction deal with how we can take a complex system and break it into simpler pieces that can then be considered separately. These two types of abstraction are a division into parts, and division into specialization. Colloquially, these are known by the terms ``has-a'' and ``is-a'' abstraction. For example, a car has an engine, but a car is a means of transportation.

[audio] [real] Text to accompany slide14, in Chapter 2 of An Introduction to Object-Oriented Programming