Chapter 9: Data Abstraction and Object Orientation

Three fundamental concepts to object-oriented programming

Object-oriented programming

Object-orientation

Refinement

Derivation

Encapsulation and inheritance

Modules and types

Initialization and finalization

Dynamic method binding and virtual methods

class person { ...
class student : public person { ...
class professor : public person { ...

student s;
professor p;

person *x = &s;
person *y = &p;

x->print_classes();
y->print_classes();

Smalltalk