pilero ha scritto:
Più precisamente mi sono bloccato al punto dove dovrei inserire all' interno della Classe GruppoDiForme il metodo trasla()...
Come faccio a creare un metodo generico che sappia che io mi sto riferendo alle altre classi Es: Cerchio o Rettangolo?
Sono stato assente dai forum parecchio ultimamente, ma a questa domanda in particolare rispondo subito e ben volentieri.
Se Forme (nota1: sarebbe più sensato Form
a) ha il void trasla(int x, int y) (quindi vale per tutte le forme, già al livello di astrazione di Forma), allora la cosa più sensata per il gruppo è:
public class GruppoDiForme<E extends Forma> implements Forma { ........ }
In questo modo il E è ristretto solo a tipi che derivano da Forma (non può essere un String o altro che
non avrebbe senso). Ora ... non è importante se poi viene istanziato es. un new GruppoDiForme<Cerchio>() (che conterrà solo cerchi) o un GruppoDiForme<Forma>() (che può contenere qualunque forma, anche di tipi differenti).
Quello che è importante è che se è <E extends Forma>, vuol dire che all'interno di GruppoDiForme tu SAI e sei sicuro che tutti gli oggetti trattati avranno sicuramente il trasla, perché è appunto già noto nel tipo che fa da limite superiore.
P.S. a presto sul forum!
P.S. 2) non ho capito cosa c'entra JFC nel titolo.