Vai al contenuto principale
Pubblicato il

Ancora sull'Ereditarietà in Java

Condividi:

Introduzione

Mentre la prima introduzione all'ereditarietà in Java ci aiuta a comprendere i suoi concetti fondamentali, in questo articolo approfondiremo argomenti più avanzati come l'override dei metodi e l'astrazione.

Override dei Metodi

Quando una sottoclasse eredita da una superclasse, eredita anche i suoi metodi. Tuttavia, in molti casi vogliamo che la sottoclasse abbia un'implementazione diversa per uno o più di quei metodi. Questo si ottiene tramite l'override dei metodi, usando l'annotazione @Override.

Vantaggi dell'Override dei Metodi:

  1. Flessibilità: Permette alla sottoclasse di fornire un'implementazione specifica di un metodo già fornito dalla sua superclasse.
  2. Riutilizzo del Codice: Anche ereditando un metodo da una superclasse, possiamo adattarlo alle esigenze specifiche della sottoclasse.
  3. Maggiore Leggibilità: Usando l'annotazione @Override, segnaliamo chiaramente che il metodo viene sovrascritto, rendendo il codice più comprensibile.
package com.caffeinealgorithm.programaremjava;

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

    /*
      Nome: Nelson Silva
      Età: 28
      Il mio cibo preferito è la lasagna.
    */
  }
}

class Padre {
  protected String cognome = "Silva";

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

class Figlio extends Padre {
  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);
  }

  @Override
  public void ciboPreferito() {
    System.out.println("Il mio cibo preferito è la lasagna.");
  }
}

Astrazione e Metodi Astratti

Il termine "abstract" è stato brevemente menzionato in precedenza. Questo è un concetto importante in Java, che consente di creare classi e metodi che non possono essere istanziati. Sono, essenzialmente, modelli che altre classi devono seguire.

  1. Classi Astratte: Non possono essere istanziate direttamente. Servono come base per altre classi.
  2. Metodi Astratti: Sono dichiarati nella classe abstract ma non hanno corpo. Le sottoclassi devono fornire l'implementazione di questi metodi.

Esploreremo questo argomento in dettaglio in un prossimo articolo, garantendo una comprensione completa dell'astrazione e di come si integra con l'ereditarietà.

Conclusione

L'ereditarietà, combinata con concetti come l'override dei metodi e l'astrazione, rende la programmazione orientata agli oggetti uno strumento potente per creare software modulare e riutilizzabile. Questi sono solo alcuni dei concetti avanzati in Java, e continuare a esplorarli approfondirà ulteriormente le tue conoscenze.

Happy coding!