Tratto da: F. Sanpietro, O. Sanpietro – Java: il linguaggio e la tecnologia – TRAMONTANA
Un progetto per una gerarchia di classi
public class Elaboratore { protected String CPU; protected int RAM, hardDisk; public void nuovoElaboratore(String CPU, int RAM, int HardDisk) { this.CPU=CPU; this.RAM=RAM; this.hardDisk=HardDisk; } }
public class PC extends Elaboratore { protected String periferiche; public void nuovoPC(String Periferiche) { this.periferiche=Periferiche; } }
public class Notebook extends PC { protected String dimensioni, peso; public void nuovoNotebook(String Dimensioni, String Peso) { this.dimensioni=Dimensioni; this.peso=Peso; } public String toString() { return CPU + ", RAM: " + RAM + "MB, Hard Disk: " + hardDisk + "GB" + "*n" + "Periferiche aggiuntive: " + periferiche + "*n" + "Dimensioni: " + dimensioni + ", peso: " + peso; } }
public class Desktop extends PC { // ecc. }
public class Server extends Elaboratore { // ecc. }
Richiede i seguenti passi per poter utilizzare un oggetto della classe Notebook
Notebook computer = new Notebook(); computer.nuovoElaboratore("MicroP 2,4 GHz", 256, 40); computer.nuovoPC("lettore DVD"); computer.nuovoNotebook("29,9-23,0-5,5 cm", "2,9 Kg");
Se si introducono i costruttori e si usano intensivamente tramite super()
public class Elaboratore { protected String CPU; protected int RAM, hardDisk; public Elaboratore(String CPU, int RAM, int HardDisk) { this.CPU=CPU; this.RAM=RAM; this.hardDisk=HardDisk; } }
public class PC extends Elaboratore { protected String periferiche; public PC(String CPU, int RAM, int HardDisk, String Periferiche) { super(CPU, RAM, HardDisk); this.periferiche=Periferiche; } }
public class Notebook extends PC { protected String dimensioni, peso; public Notebook(String CPU, int RAM, int HardDisk, String Periferiche, String Dimensioni, String Peso) { super(CPU, RAM, HardDisk, Periferiche); this.dimensioni=Dimensioni; this.peso=Peso; } public String toString() { return CPU + ", RAM: " + RAM + "MB, Hard Disk: " + hardDisk + "GB" + "*n" + "Periferiche aggiuntive: " + periferiche + "*n" + "Dimensioni: " + dimensioni + ", peso: " + peso; } }
è possibile inizializzare un oggetto della classe Notebook (is a PC (is a Elaboratore)) con tutti i dati necessari, in un’unica istruzione
Notebook computer = new Notebook("MicroP 2,4 GHz", 256, 40, // per Elaboratore() "lettore DVD", // per PC() "29,9-23,0-5,5 cm", "2,9 Kg"); // per NoteBook()