Originariamente inviato da redcloud
[CODE]ma vorrei rendere il cast automatico chiedendo a i qual è il suo tipo istanziato, quindi qualcosa del genere
codice:m.pippo((i.getTipoIstanziato()) i);Che pur funzionando tecnicamente ..... faticherei un pochino a capire il senso, il motivo e lo scopo finale per cui devi "romperti" la testa con robe del genere....codice:if (i instanceof A) { m.pippo((A) i); } else if (i instanceof B) { m.pippo((B) i); }
Quando si fanno cose del tipo:
InterfacciaXYZ i = new UnaClasseCheImplementaInterfacciaXYZ();
lo scopo principale è quello di sfruttare il "polimorfismo" ovvero: non sai e non ti interessa quale è il tipo reale dell'oggetto ma sai che implementa InterfacciaXYZ e quindi invochi i metodi dell'oggetto in modo "polimorfico" attraverso la interfaccia.
Quindi o in Main c'è un metodo pippo(I i) { ... } e qui dentro vengono invocati i metodi di I (quindi in modo polimorfico) oppure tutto quanto ha poco senso ... solo per "giocherellare"....