The fragile base class problem is common to all systems that support inheritance. This means that changes in your supertype (the class you inherit from) can get unexpected results: the change forces you to violate your assumptions in the base class. See this related SO question for an explanation and examples.
Unlike Scala, exports back additions to parent classes to external, independent properties that you can add to a subtype using Mixin Composition. See this example and consider " RichIterator " as the change that you would like to work on the AbsIterator base once it has been defined. See how mixin doesn't change a parent, but is it still easy to reuse in a subtype?
source share