signaturejava

21^ SIGNATURE: "INHERITANCE"


SINTASSI: class Nome_subclass extends Nome_superclass {                 //body                 }Esiste una sola 'superclass' per ogni 'subclass'(Questa apparente limitazione verrà risolta con le 'Interfaces')Una 'subclass' può diventare 'superclass' di un'altra 'subclass'Una 'subclass' NOT MUST accedere ai metodi/variabili 'private'della 'superclass':La soluzione a questa apparente limitazione viene risoltacon la keyword 'super' che ha 2 forme generali3.1 la prima invoca il costruttore della 'superclass'SINTASSI: super (elenco-arg)Questa dichiarazione deve sempre essere inserita per prima nel costruttore della subclass3.2 La seconda forma generale viene utilizzata per accedere ad un membro nascosto alla superclasse da un membro della subclassSINTASSI: super.membro (laddove per membro è da intendersi un metodo|variabile d'istanza)Problema: Che fare quando si vuole disporre di un modo per garantire che una subclass RIDEFINISCA tutti i metodi necessari?Soluzione di Java: 'abstract method'SINTASSI: abstract tipo nome(elenco-parameters); (i metodi astratti non hanno body)Una class che contiene 'metodi astratti' deve essere dichiarata 'abstract'.Tuttavia nelle classi astratte sono consentiti 'metodi concreti'