edutecnica

Esercizio 3        

Scrivi un programma che dato un numero intero in ingresso vengano restituiti un oggetto rappresentativo del quadrato del numero dato e un oggetto rappresentativo del cubo del numero assegnato. Implementa l'algoritmo attraverso l'uso di una interfaccia comune, che possa evidenziare il comportamento del polimorfismo.


Realizziamo l'interfaccia ritorno che contiene il metodo (ritorno(int par)) comune a tre tipologie di oggetti istanziati, si nota,infatti come tale chiamata sia polimorfa. Il primo tipo corrisponde alla classe numero, che semplicemente ritorna il valore che riceve in ingresso.
Le classi quadrato e cubo (attraverso lo stesso metodo ritorno(int par)) restituiscono invece il quadrato e il cubo del numero in ingresso).

Nel disegno sono riportate le relazioni fra le classi implementate.

class quaCubo {
public static void main(String args[]) {
ritorno r = new numero();
quadrato q = new quadrato();
cubo c = new cubo();
r.ritorno(2);
r=q;
r.ritorno(2);
r=c;
r.ritorno(2);
}// fine main
} //fine classe

interface ritorno {
void ritorno(int par);
} //fine interfaccia ritorno

class numero implements ritorno {
public void ritorno(int p) {
System.out.println("il numero: " + p);
}
}// fine classe numero
class quadrato implements ritorno {
public void ritorno(int p) {
System.out.println("il quadrato di "+ p+":" + p*p);
}
} // fine classe quadrato
class cubo implements ritorno {
public void ritorno(int p) {
System.out.println("il cubo di "+p+":" + (p*p*p));
}
} // fine classe cubo

Si nota come dopo le istruzioni:
r=q;
. . .
r=c;

l'oggetto r si possa comportare come un oggetto q di classe Quadrato oppure come un oggetto c di classe Cubo.
Si può quindi dire, che l'oggetto r implementa una ereditarietà multipla dalle tre classi numero, quadrato e cubo.