
OO = encapsulation + inheritance
benefits of OOP
- modularity -- autonomous entities, cooperation through exchanges of messages
- deferred commitment -- the internal workings of an object can be redefined without changing other parts of the system
- reusability -- refining classes through inheritance
- naturalness -- object-oriented analysis / design, modeling