Objetos têm um mecanismo fabuloso, mensagens polimórficas, que permitem expressar lógica condicional de maneira flexível  mas clara. Ao trocar condicionais explícitos por mensagens polimórficas, muitas vezes você consegue reduzir duplicação,  tornar seu código mais claro e aumentar a flexibilidade tudo ao mesmo tempo.
Kent Beck, em Refactoring