Estratto del documento

Polimorfismo

Secondo il tipo di una variabile non determina in modo completo il tipo dell’oggetto a cui essa si riferisce. L’invocazione di un metodo è sempre determinata dal tipo dell’oggetto usato come parametro implicito, e NON dal tipo della variabile oggetto:

Variabile oggetto e interfaccia

La variabile oggetto (l’interfaccia) ci dice cosa si può fare con quell'oggetto (cioè quali metodi si possono utilizzare). L'oggetto ci dice come farlo (appartenente ad una certa classe).

Esempio

ESEMPIO: Comparable x;...

if (...) x = new BankAccount(1000);

else x = new String("");...

if (x.compareTo(y) > 0)

Se la condizione dell'if è vera, x contiene un riferimento ad un oggetto di tipo BankAccount, quindi il compilatore decide di invocare il metodo compareTo scritto in BankAccount.

Ordinamento di oggetti e l'interfaccia Comparable

L’interfaccia Comparable è definita nel pacchetto java.lang, per cui non deve essere importata né deve essere definita.

Definizione dell'interfaccia

public interface Comparable {
    int compareTo(Object other);
}

Metodo di ordinamento

Come può Comparable definire un metodo di ordinamento valido per tutte le classi? Basta definire un metodo per ordinare un array di riferimenti ad oggetti che realizzano Comparable, indipendentemente dal tipo. Quindi tutti i metodi di ordinamento e ricerca che abbiamo visto per array di numeri interi possono essere riscritti per array di oggetti Comparable, basta usare le seguenti “traduzioni”:

Anteprima
Vedrai una selezione di 1 pagina su 1
Informatica I - polimorfismo e interfacce in Java Pag. 1
1 su 1
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher enricopava di informazioni apprese con la frequenza delle lezioni di Informatica 1 e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Padova o del prof Avanzini Federico.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community