Na classe Teste tem um trecho do código assim:
.comItem(new Item("item 1", 100.0))
Realmente compila? Pois conforme o código restante, deveria usar "ItemDaNota" que esse é o nome da classe e não "Item". Certo? Portanto meu código ficou:
.comItem(new ItemDaNota("item 1", 100.0))
A questão é, eu sei que a minha classe poderia se chamar Item, mas fico confuso por vocês utilizarem nomes distintos. O que foi que eu perdi?