Ma_fack
Ominide
1 min. di lettura
Vota 3 / 5

Concetti Chiave

  • I modificatori Public, Private e Protected determinano la visibilità dei dati e metodi nelle classi e sottoclassi.
  • Public consente pieno accesso ai membri della classe da parte delle sottoclassi senza restrizioni.
  • Private rende i membri della classe invisibili e inaccessibili alle sottoclassi.
  • Protected permette l'accesso ai membri della classe alle sottoclassi e alle stesse classi del package.
  • L'overriding permette di riscrivere un metodo della superclasse nella sottoclasse per adattarlo a nuovi scopi.

Public, private and protected

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

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 e risposte

Hai bisogno di aiuto?
Chiedi alla community