Don't forget that by writing the bulk of your code in terms of interfaces (the 'ultimate superclasses', which just declare what methods a class should have, but leave all implementation to...