Lesson 058

Object-Oriented Programming

State + Behavior · The Four Pillars

1:00

The four pillars of OOP — encapsulation, abstraction, inheritance, and polymorphism — and when to use composition instead.

By the end, you can

  • Explain what an object is and distinguish its state from its behavior.
  • Describe the relationship between a class and its instances, and state what the constructor does.
  • Define each of the four pillars and give a concrete example of each.
  • Distinguish encapsulation (hiding state) from abstraction (hiding complexity).
  • Distinguish method overriding (dynamic dispatch, runtime) from method overloading (compile time).
  • Identify whether a relationship calls for inheritance (is-a) or composition (has-a).
  • Explain the fragile base class problem and why composition is usually preferred over deep inheritance.
Up next in Recursion, Paradigms & Algorithm Analysis
Questions or feedback?