Sometimes it's necessary or at least useful for a subclass to adapt an inherited method to its needs.

Overriding an inherited method is easy: we just rewrite it the way we want it to be.

Hmm, wouldn't that just create a new method and make the code more complicate? What if we just override the previous eat() method?