11.2 Composition and generalization
Another important feature of object-oriented languages is the ability to reuse the code. You can employ two key techniques, composition and generalization, for the code reuse.