
GUIDE PER ASPIRANTI PROGRAMMATORI
Ereditarietà in Java
Ci sono 3 concetti principali che fungono da pilastri fondamentali della programmazione orientata agli oggetti (OOP) e forniscono un framework per creare strutture di codice complesse e flessibili: ereditarietà, polimorfismo e incapsulamento. Scopriamo insieme, anche nei capitoli a seguire, come funziona ognuno di loro. Ereditarietà in Java L’ereditarietà è un meccanismo che permette ad una…


Vuoi avviare una nuova carriera o fare un upgrade?
Trova il corso Digital & Tech più adatto a te nel nostro catalogo!
Ci sono 3 concetti principali che fungono da pilastri fondamentali della programmazione orientata agli oggetti (OOP) e forniscono un framework per creare strutture di codice complesse e flessibili: ereditarietà, polimorfismo e incapsulamento. Scopriamo insieme, anche nei capitoli a seguire, come funziona ognuno di loro.
Ereditarietà in Java
L’ereditarietà è un meccanismo che permette ad una classe di ereditare attributi e metodi da un’altra classe. La classe che eredita è chiamata “sottoclasse” o “classe derivata“, mentre la classe da cui eredita è chiamata “superclasse” o “classe base“.
Caratteristiche dell’ereditarietà
- Promuove il riutilizzo del codice permettendo alle nuove classi di utilizzare metodi e variabili della classe base.
- Crea una relazione gerarchica tra classi.
- Supporta la creazione di nuove classi che estendono o modificano il comportamento di classi esistenti.
La classe Veicolo contiene attributi e metodi comuni a tutti i tipi di veicoli.
public class Veicolo { private String marca; private String modello; public Veicolo(String marca, String modello) { this.marca = marca; this.modello = modello; } public void stampaDettagli() { System.out.println("Marca: " + marca + ", Modello: " + modello); } }
La classe Auto estende Veicolo e aggiunge un attributo specifico per l’auto, come il numero di porte.
public class Auto extends Veicolo { private int numeroPorte; public Auto(String marca, String modello, int numeroPorte) { super(marca, modello); // Chiama il costruttore della superclasse this.numeroPorte = numeroPorte; } @Override public void stampaDettagli() { super.stampaDettagli(); // Chiama il metodo della superclasse System.out.println("Numero di porte: " + numeroPorte); } }
La classe Moto estende anche Veicolo e può avere attributi specifici per le moto, come la presenza di un bauletto.
public class Moto extends Veicolo { private boolean haBauletto; public Moto(String marca, String modello, boolean haBauletto) { super(marca, modello); // Chiama il costruttore della superclasse this.haBauletto = haBauletto; } @Override public void stampaDettagli() { super.stampaDettagli(); // Chiama il metodo della superclasse System.out.println("Ha bauletto: " + (haBauletto ? "Sì" : "No")); } }
Di seguito un esempio di come potresti creare istanze di Auto e Moto e stampare i loro dettagli:
public class TestEreditarieta { public static void main(String[] args) { Auto miaAuto = new Auto("Fiat", "500", 4); Moto miaMoto = new Moto("Ducati", "Monster", true); miaAuto.stampaDettagli(); // Stampa dettagli dell'auto miaMoto.stampaDettagli(); // Stampa dettagli della moto } }
Questo esempio mostra come l’ereditarietà permetta di definire una superclasse Veicolo con comportamenti comuni, che possono essere poi estesi e specializzati dalle sottoclassi Auto e Moto. Le sottoclassi ereditano gli attributi e i metodi della superclasse e possono anche avere i loro metodi e attributi specifici.
CONTENUTI GRATUITI IN EVIDENZA
Guide per aspiranti programmatori 👨🏻🚀
Vuoi muovere i primi passi nel Digital e Tech? Abbiamo preparato alcune guide per aiutarti a orientarti negli ambiti più richiesti oggi.