Even though the suggested model is ultimately much more flexible, I'm surprised the article didn't even mention multiple inheritance as the most obvious solution to the dialog/animated problem. Not all the world is Java.
In general, there is no such a rule that says: "HAS A" is wiser. It depends on the use case.