Encapsulation, abstraction, polymorphism, and composition vs inheritance
Encapsulation organizes state and behavior, abstraction hides unnecessary detail, polymorphism lets different objects satisfy the same interface, and composition often keeps designs looser than inheritance.
- Composition favors explicit relationships
- Polymorphism is about substitutable behavior
- Python uses conventions more than strict access control
Encapsulation, abstraction, polymorphism, and composition vs inheritance