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 |