Conference: Week 6.5

Table Of Contents

1. Planning Ahead

2. Why is OOP So Widely Used?

3. OO Features

From lecture, four primary features of OO Languages:

  1. Dynamic Dispatch
  2. Encapsulation
  3. Subtyping
  4. Inheritance

This is a rich design space, with many possible design alternatives for each of these features. We looked at how they work in Smalltalk. Pick one or two OO languages you have used – Java, Python, JavaScript, Swift, C++, Javascript?, … – How do these features work in that language? Are there good/bad aspects of those design choices?