  |
Punto e Punto3D |
Possiamo fare immediatamente un semplice esempio mostrando come riutilizzare un oggetto di classe Punto già esistente. Si tratta di un punto bidimensionale, che mantiene le sole informazioni di coordinata x e coordinate y.

class Punto {
int x;
int y;
}
class Punto3D extends Punto {
int z;
}
L'estensione naturale di questa classe è il punto tridimensionale. Ovviamente vogliamo riciclare il punto preesistente, mantenendo le informazioni che già contiene. Quindi il punto tridimensionale estende il punto, aggiungendogli una nuova coordinata z.
  |
un punto 3D è un punto |
  |
Punto p= new Punto3D(); |
Il nuovo oggetto è ancora a tutti gli effetti una istanza del vecchio
oggetto, perché lo contiene integralmente. Per cui possiamo assegnare
a variabili di una classe istanze di classi derivate. Questo non deve
stupire: è assolutamente la prassi. Concettualmente a tutti gli
effetti il punto tridimensionale è ancora un punto bidimensionale, che
contiene tutte sue le informazioni e i metodi. E in più qualcosa è
stato aggiunto.
|