Superclasse e sottoclassi in Java
Nel linguaggio Java le classi rispettano una gerarchia. Ogni classe ha una superclasse dalla quale eredita variabili, metodi e proprietà. La classe che eredita è detta sottoclasse.
Nell'esempio precedente la classe K è la superclasse delle sottoclassi A e B. A sua volta la classe A è la superclasse delle sottoclassi A1 e A2.
Nota. A differenza di altri linguaggi orientati agli oggetti (OOP) nel Java vale l'ereditarietà singola e non multipla. Vuol dire che una classe non può avere due o più superclassi, bensì solo una. Una superclasse può avere diverse sottoclassi. Viceversa, una sottoclasse può avere una sola superclasse per via dell'ereditarietà singola. Una superclasse può comunque essere a sua volta una sottoclasse di un'altra classe.
La differenza tra classi e oggetti
Gli oggetti creati in una sottoclasse ereditano automaticamente gli attributi, le variabili e i metodi della superclasse, oltre alle caratteristiche della classe in questione.
Ad esempio, la creazione dell'oggetto Andrea nella classe studenti eredita anche gli attributi (nome, cognome) della superclasse anagrafica.
La classe Object
Al vertice della gerarchia si trova la classe Object.
E' la madre di tutte le classi.
Pertanto, tutte le classi possono essere considerate direttamente o indirettamente delle sottoclassi della classe Object.
Come indicare una superclasse
Per indicare la superclasse di una classe si usa la clausola extends al momento della definizione della classe stessa.
class nomeclasse extends nomesuperclasse {
}
Se una classe non indica una superclasse è automaticamente considerata come sottoclasse diretta della classe Object.
E così via.