Unfortunately, in some languages, inheritance of abstract classes is the only way to get the equivalent of interfaces.<p>That said, yeah, the less class inheritance, the better. Ideally, work in a language where interfaces can include default implementations.