Login: password:
Forgot your password?
Protezione ed ereditarietà > Protezione ed ereditarietà > in depth
Protezione ed ereditarietà
Nella lezione del 21/5/12 la sezione finale (vero o falso) ero un po' di corsa perchè stava finedo il tempo e ho detto delle scemenze.

Chiarifico qui:

Quando si fa overriding di un metodo NON SI PUO' imporre una visibilità più restrittiva di quella presente nella classe padre.
SI PUO' scegliere una visibilità uguale o più ampia.

Quindi se la classe padre ha un metodo int f() protected, nella classe figlia NON SI PUO' definire private int f(). Si può invece imporre
public int f(), protected int f() o semplicemente int f(). (Ricordo che in assenza di dichiarazione esplicita, si ha visibilità entro lo stesso package).

Se la classe padre ha un metodo public int f(), l'unica possibilità di overriding nella classe figlia è public int f(). Qualunque altra forma di visibilità darà errore a compile time.

Ovviamente invece l'overloading NON è vincolato dalle definizioni presenti nella classe padre.

Protezione ed ereditarietà > in depth


powered by segue
segue_logo