L’ereditarietà è uno dei meccanismi fondamentali della programmazione orientata agli oggetti, che consente di ridurre la ridondanza del codice permettendo alle classi figlie di ereditare campi e i metodi della classe madre.
Il livello di ereditarietà dei membri (campi e metodi) può essere controllato attraverso i modificatori di accessibilità.

Object (extends implicito)
In Java tutte le classi estendono implicitamente la classe Object. Ciò significa che ogni classe, anche se non è stata definita esplicitamente come una sottoclasse di Object, eredita comunque le proprietà e i metodi di Object
I metodi di object più comunemente utilizzato sono;
getClass()⇒ restituisce una rappresentazione stringa dell’oggettotoString()⇒ restituisce la classe dell’oggettohashCode()⇒ restituisce un codice hash per l’oggettoequals()⇒ confronta l’oggetto con un altro oggetto per determinare se sono uguali
Ovveride
Questi metodi possono essere sovrascritti dalle classi figlie per fornire un comportamento personalizzato, ecco qui alcuni re-implementazioni comuni di questi metodi: