Sono pienamente d'accordo con te riguardo all'uso delle interfacce. Il problema sorge quando hai una situazione del genere in cui sei OBBLIGATO ad usare quella specifica firma dei metodi. Si sarebbe potuto risolvere passando al metodo un oggetto di tipo interfaccia, ma purtroppo così non è. Quindi, piuttosto che scrivere una catena infinita di instanceof mi chiedevo se questo compito poteva essere assolto a runtime.