
Originariamente inviata da
francesco.muia
Si chiama "Polimorfismo", spiegarlo in poche righe è difficile, soprattutto se ancora non hai visto cos'è l'ereditarietà.
Cmq cerco di spiegarti il caso in particolare che hai evidenziato.
HashMap come tutte le collezioni di oggetti in java implementano l'interfaccia Collection e ovviamente implementando questa interfaccia devo definire i metodi che essa contiene (isEmpty,get etc...). Ora tipicamente quando un oggetto eredita/implementa un'altro oggetto si definisce un relazione del tipo "è un" cioè un HasMap è un HashMap ma è anche una Collection, quindi essendoci questo tipo di relazione si può definire un metodo esempio values che ha come tipo di ritorno una Collection e all'interno di questo metodo effettuare il return this (non è questo il caso di HashMap non ritorna semplicemente il this), in quanto la classe in questione è anche una Collection.