La classe che eredita da un'altra classe è chiamata "sottoclasse" o "classe derivata". La classe da cui viene ereditata è chiamata "superclasse" o "classe base".
Quando una classe eredita da un'altra classe, ottiene automaticamente tutte le proprietà e i metodi della superclasse. La nuova classe può quindi aggiungere le proprie proprietà e metodi oppure può sovrascrivere le proprietà e i metodi della superclasse.
L'ereditarietà viene utilizzata per creare una gerarchia di classi, in cui ciascuna classe eredita da un antenato comune. Ciò rende possibile riutilizzare il codice e creare nuove classi con funzionalità diverse.
Ad esempio, considera una classe chiamata "Animale". Questa classe potrebbe avere proprietà come "nome", "età" e "specie". Potrebbe anche avere metodi come `eat()`, `sleep()` e `move()`.
Consideriamo ora una classe chiamata "Dog". La classe "Cane" può ereditare dalla classe "Animale". Ciò significa che la classe "Dog" otterrà automaticamente tutte le proprietà e i metodi della classe "Animal". La classe "Dog" può quindi aggiungere le proprie proprietà e metodi, come il metodo "bark()".
Questo è un semplice esempio di come viene utilizzata l'ereditarietà per creare una nuova classe con funzionalità diverse. L'ereditarietà è uno strumento potente che può essere utilizzato per creare programmi orientati agli oggetti complessi e flessibili.
Ecco alcuni esempi aggiuntivi di come viene utilizzata l'ereditarietà nelle applicazioni del mondo reale:
* La classe `java.lang.Object` è la classe base per tutti gli oggetti nel linguaggio di programmazione Java. Ogni altra classe in Java eredita dalla classe "Object".
* La classe `java.util.ArrayList` è una sottoclasse della classe `java.util.AbstractList`. Ciò significa che la classe "ArrayList" ha tutte le proprietà e i metodi della classe "AbstractList", in più ha le proprie proprietà e metodi.
* La classe `javax.swing.JButton` è una sottoclasse della classe `javax.swing.JComponent`. Ciò significa che la classe "JButton" ha tutte le proprietà e i metodi della classe "JComponent", in più ha le proprie proprietà e metodi.