Concetti Chiave

  • I modificatori di accesso Public, Private e Protected sono cruciali nell'ereditarietà, definendo il livello di visibilità dei membri delle classi.
  • Il modificatore Public consente l'accesso illimitato ai membri da parte delle sottoclassi, mentre Private nasconde completamente i membri.
  • Protected permette l'accesso ai membri da tutte le sottoclassi e dalle classi dello stesso package, garantendo una certa flessibilità.
  • L'overriding consente di riscrivere i metodi della superclasse nella sottoclasse, modificandone il comportamento per esigenze specifiche.
  • Il comando super può essere utilizzato durante l'overriding per richiamare il metodo originale della superclasse, evitando la duplicazione del codice.

Qual è l'importanza dei modificatori di accesso?

Nell’ereditarietà assumono molta importanza i modificatori Public, Private e Protected infatti:

PUBLIC = permette di dichiarare dati e metodi membro visibili e quindi utilizzabili dalla sottoclasse senza limitazioni;

PRIVATE = nasconde completamente dati e metodi membro dichiarati tali;

PROTECTED = permette l’accesso a metodi e dati a tutte le sottoclassi, all’interno o meno dello stesso package, e alle sole classi dello stesso package se si tratta di una variabile reference.

Overriding

Concetto di overriding

Attraverso l’ereditarietà si possono costruire oggetti via via più specifici partendo da un modello base. Un esempio può essere quello di Veicolo che può specializzarsi in Moto o in Automobile con differenti caratteristiche anche se quelle di partenza rimangono le stesse. Può capitare tuttavia che in una sottoclasse il metodo presente nella superclasse non sia adeguato al nostro scopo; in questo caso si ricorre all’overriding che consente di modificare il metodo semplicemente riscrivendolo nella sottoclasse con le modifiche che ci interessano. Quando andremo a creare un’oggetto della sottoclasse la Java Machine ignorerà il metodo con lo stesso nome presente nella superclasse ed eseguirà solamente quello della sottoclasse.

Per evitare di ricopiare il codice facendo overriding è possibile utilizzare il comando super questa volta seguito da un punto e dal nome del metodo presente nella superclasse. Qui di seguito abbiamo un esempio.

Domande da interrogazione

  1. Qual è l'importanza dei modificatori di accesso nell'ereditarietà?
  2. I modificatori di accesso come Public, Private e Protected sono fondamentali nell'ereditarietà poiché determinano la visibilità e l'accesso ai dati e metodi membro nelle sottoclassi. Public consente accesso illimitato, Private nasconde completamente, mentre Protected permette l'accesso alle sottoclassi e alle classi dello stesso package.

  3. Cosa si intende per overriding e quando viene utilizzato?
  4. L'overriding è un concetto che consente di modificare un metodo della superclasse riscrivendolo nella sottoclasse quando il metodo originale non è adeguato. Questo permette di creare oggetti più specifici senza duplicare il codice.

  5. Come si può evitare di duplicare il codice durante l'overriding?
  6. Per evitare la duplicazione del codice durante l'overriding, è possibile utilizzare il comando super seguito dal nome del metodo della superclasse, permettendo così di richiamare il metodo originale all'interno della sottoclasse.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community