Mettiamo il caso che io voglia scrivere una mia interface.
Questa ad esempio:
Codice:
public interface DownloadersInterface
{
public void metodoUno();
public void metodoDue();
}
Normalmente una interfaccia tramite
implements viene implementata in una classe all'interno della quale devono essere ridefiniti tutti i metodi, quindi:
Codice:
public class ClasseProva implements DownloadersInterface
{
public static void main(String[] args)
{
}
public void metodoUno()
{
System.out.println("Metodo 1");
}
public void metodoDue(){}
}
Ok, adesso però l'interfaccia viene usata in modo totalmente diverso:
Codice:
public class AltraClasse
{
public metodoDB()
{
.
.
.
ResultSet rs = st.executeQuery("SELECT * FROM tabella");
int i = 0;
String s[] = new String[10];
while(rs.next())
{
s[i] = rs.getString("Nome");
i++;
}
}
}
Ora:
il metodo executeQuery() torna un valore ResultSet ovvero una interfaccia e già qua qualcosa non mi torna.
Cioè se fosse tornato un int, String...sarebbe andato bene, ma un valore ResultSet proprio non riesco ad immaginarmelo.
Ma il succo della questione è: come diavolo si possono usare metodi di una interfaccia (in questo caso next() e getString()) dal momento che questa non è istanziabile e dal momento che non sono stati ridefiniti i metodi visto che non l'abbiamo implementata??
tnx!