Across
- 2. A blueprint or template for creating objects in Python.
- 5. special “double underscore” methods like `__str__`, `__len__`, or `__add__` that customize object behavior.
- 8. The concept of bundling data and methods within a class and restricting access to internal details.
- 10. Creating complex objects by combining simpler objects, rather than through inheritance.
- 11. The class whose features are inherited by another class.
- 12. A method used to access (get) the value of a private attribute.
- 13. A class that inherits attributes and methods from another class.
- 14. A function defined inside a class that operates on its objects.
- 15. Replacing a method in a child class that already exists in the parent class.
- 16. A mechanism that allows one class to acquire properties and methods of another class.
- 18. An instance of a class that contains data (attributes) and behaviors (methods).
- 19. Hiding complex details and showing only the essential features of an object.
- 20. A reference to the current instance of a class; used to access attributes and methods.
Down
- 1. The ability of different classes to use methods with the same name but different behaviors.
- 3. A special method (`__init__`) that initializes new objects.
- 4. An attribute intended to be hidden from outside access, often prefixed with an underscore (e.g., `_name`).
- 6. The process of creating an instance (object) from a class.
- 7. A variable that stores data associated with an object or class.
- 9. A specific object created from a class.
- 17. A method used to modify (set) the value of a private attribute.
