Object-Oriented Hierarchies

Types of Hierarchies

  1. Has-a / Part-of (Association/Containment)
  2. Is-a / Kind-of (Inheritance/Generalization)
  3. Use-a (Dependency)
  4. Creates-a (Instantiation)

Association (Has-a Relationship)

class Engine {};
class Car {
private:
    Engine e; // Association
};

Types of Association

  1. Composition (Strong Association)
  2. Aggregation (Weak Association)

Inheritance (Is-a Relationship)

What Gets Inherited