Section 5.1. Introduction
Section 5.2. Overriding a Built-In Method
Section 5.3. Getting All Members of a Class Hierarchy
Section 5.4. Calling a Superclass _ _init_ _ Method if It Exists
Section 5.5. Calling a Superclass Implementation of a Method
Section 5.6. Implementing Properties
Section 5.7. Implementing Static Methods
Section 5.8. Implementing Class Methods
Section 5.9. Delegating Automatically as an Alternative to Inheritance
Section 5.10. Decorating an Object with Print-Like Methods
Section 5.11. Checking if an Object Has Necessary Attributes
Section 5.12. Making a Fast Copy of an Object
Section 5.13. Adding Methods to a Class at Runtime
Section 5.14. Modifying the Class Hierarchy of an Instance
Section 5.15. Keeping References to Bound Methods Without Inhibiting Garbage Collection
Section 5.16. Defining Constants
Section 5.17. Managing Options
Section 5.18. Implementing a Set Class
Section 5.19. Implementing a Ring Buffer
Section 5.20. Implementing a Collection
Section 5.21. Delegating Messages to Multiple Objects
Section 5.22. Implementing the Singleton Design Pattern
Section 5.23. Avoiding the Singleton Design Pattern with the Borg Idiom
Section 5.24. Implementing the Null Object Design Pattern