Unit 12 Study Guide
- Define the term abstraction and explain why it is such a fundamental concept in computer science.
 - Explain the difference between process and data abstraction and give an example of each.
 - Explain the value of abstract data types and give examples of common ADTs.
 - Explain the concepts behind and benefits of information hiding, polymorphism, and encapsulation. Evaluate language support for these concepts in popular languages.
 - Define inheritance and explain the benefits and drawbacks of allowing multiple inheritance.
 - Compare and contrast static vs. dynamic dispatch, and explain the problem that dynamic dispatch solves.
 - Explain a class instance record and the kinds of data it describes.
 - Explain virtual method tables and discuss their benefits and implementation.