Le classi possono condividere le proprie funzionalità (costanti, attributi e metodi) con le classi eredi.
Public
L’attributo o il metodo dichiarato come public
è accessibile/ modificabile e richiamabile dall’interno della classe stessa, dall’esterno della classe e dall’interno delle classi che ereditano.


Quindi ho una classe che eredita gli attributi e i metodi della classe padre. Da notare comunque che quando istanzio la variabile Rebecca essa prende il valore di a iniziale della classe e non quello modificato precedentemente.
Protected
L’indicatore di visibilità protected
è più restrittivo rispetto al precedente: gli attributi ed i metodi non sono accessibili e modificabili dall’esterno della classe ma lo sono dalle classi che ereditano:

questa è la definizione.

questo codice fornisce questo errore:


questo invece è corretto.
Riassumendo:
con l’operatore this sono acceduto all’attributo (proprietà) presente nella classe Natante .
Attenzione che per accedere all’attributo della classe Natante non devo mettere il dollaro.
Private
L’indicatore di visibilità private
è il più restrittivo dei tre. Le proprietà dichiarate come private sono accessibili/modificabili solo dall’interno della classe che li dichiara, cosi come i metodi privati sono richiamabili solo al suo interno:

per accedere all’attributo a ho creato un metodo pubblico che accede ad a ed al metodo sayHello. Solo in questa maniera posso accedervi dalla sottoclasse.