Vai al contenuto principale
Pubblicato il

Ereditarietà in Java

Condividi:

Introduzione

L'ereditarietà è uno dei quattro pilastri della programmazione orientata agli oggetti (OOP), insieme all'incapsulamento, al polimorfismo e all'astrazione. Attraverso l'ereditarietà, è possibile creare una nuova classe basata su una già esistente, consentendo il riutilizzo del codice e la costruzione di relazioni gerarchiche.

Fondamenti dell'Ereditarietà

Vantaggi dell'Ereditarietà

  1. Riutilizzo del Codice: Non è necessario riscrivere lo stesso codice ripetutamente. La sottoclasse eredita tutti i membri della superclasse.
  2. Estensibilità: È possibile estendere la superclasse esistente per incorporare nuovi attributi e comportamenti.
  3. Gerarchia di Classi: Stabilisce una relazione gerarchica tra superclasse e sottoclasse.

Limitazioni dell'Ereditarietà in Java

In Java, l'ereditarietà viene implementata usando la parola chiave extends. Tuttavia, esistono alcune limitazioni:

  1. Ereditarietà Singola: Java non supporta l'ereditarietà multipla tramite classi. Una classe può ereditare solo da una singola classe.
  2. Costruttori e Inizializzatori Statici: Questi non vengono ereditati dalle sottoclassi.
  3. Relazione di Associazione: Se una classe eredita un'altra, si tratta di una relazione "è un" (is-a). Ad esempio, se Figlio è un'estensione di Genitore, allora Figlio è un Genitore.

La parola chiave protected

La parola chiave protected in Java consente a un membro della classe di essere accessibile direttamente da qualsiasi classe all'interno dello stesso pacchetto o dalle sottoclassi. È un modo per fornire più accesso rispetto a private, pur limitando l'accesso generalizzato come fa public.

package com.caffeinealgorithm.programaremjava;

public class Ereditarieta {
  public void Run() {
    var persona = new Figlio();
    persona.informazione();
    persona.ciboPreferito();

    /*
      Nome: Nelson Silva
      Età: 28
      Il mio cibo preferito è il risotto ai frutti di mare.
    */
  }
}

class Genitore {
  protected String cognome = "Silva";

  public void ciboPreferito() {
    System.out.println("Il mio cibo preferito è il risotto ai frutti di mare.");
  }
}

class Figlio extends Genitore {
  private String nome = "Nelson";
  private int eta = 28;

  public void informazione() {
    System.out.printf("Nome: %s %s\n", nome, cognome);
    System.out.printf("Età: %d\n", eta);
  }
}

Conclusione

L'ereditarietà è uno strumento potente in Java che consente ai programmatori di scrivere codice più modulare e riutilizzabile. Comprendendo i fondamenti e le sfumature dell'ereditarietà, sarai meglio preparato ad affrontare le sfide complesse della programmazione orientata agli oggetti in Java.

Happy coding!