Lesson 13: Method overriding & polymorphism
All animals speak — but each differently. When a child class defines a method with the same name as the parent, its version wins: that's overriding. And when the same call on different objects yields different behavior — that's polymorphism, OOP's most elegant idea.