Enquanto a extensão de classes em Java oferece aos desenvolvedores flexibilidade significativa na capacidade de redefinir aspectos dos objetos à medida que eles são utilizados em contextos diferentes, é necessária uma quantidade considerável de experiência para que se possa utilizar adequadamente classes e interfaces.
No desenvolvimento orientado a objeto, uma consideração fundamental de projeto se relaciona à decisão de quais tipos de relacionamentos serão utilizados entre as diversas classes de forma que seja possível reutilizar código preexistente. De modo conjunto aos exemplos apresentados nos módulos anteriores, iremos criar mais uma classe de modo que seja demonstrado um outro relacionamento denominado de composição, o qual é constantemente utilizado por qualquer projeto orientado a objeto.