1. To avoid problems such as diamond inheritance. And the interface model is
flexible enough to suit most needs.
2. As soon as you write a SmallTalk program that doesn't have a class. If you
don't like classes, there's a multitude of other languages you can use instead.