This e super
- La parola chiave
this
usata come nome di metodo obbligatoriamente nella prima riga del costruttore della stessa classe - La parola chiave
super
usata come nome di metodo obbligatorimente nella prima riga del costruttore permette di richiamare in costruttore della superclasse - Ogni sottoclasse deve esplicitamente definire un costruttore se la superclasse non fornisce un costruttore senza argomenti
- Questo avviene se si definisce un costruttore con almeno un argomento ma non si definisce il costruttore senza argomenti
Nota bene
Anche le classi astratte possono avere costruttori
Perché?
- Perché le classi astratte possono avere campi che vengono utilizzati da una sottoclasse
Differenza tra Overriding e Overloading
- L’overriding consiste nel ridefinire un metodo con la stessa intestazione presente in una superclasse
- L’overloading consiste nel creare un metodo con lo stesso nome, una intestazione diversa
Mantenere il contatto
-
Nell’overriding gli argomenti devono essere gli stessi
-
I tipi di ritorno devono essere compatibili (lo stesso tipo o una sottoclasse)
-
Non si può ridurre la visibilitĂ
-
Nell’overloading i tipi di ritorno possono essere diversi
- Ma non si può cambiare solo il tipo di ritorno
-
Si può variare la visibilità in qualsiasi direzione
VisibilitĂ
- Quattro possibilitĂ per campi e metodi:
Private
- Visibile solo all’interno della classe
Public
- visibile a tutti [all’interno di un modulo, vedi Java >=9]
Default
- visibile all’interno di tutte le classi del package
Protected
- visibile all’interno di tutte le classi del package e delle sottoclassi (indipendentemente dal package)