La covarianza del tipo restituito definisce come sovrascrittura la ridefinizione di un metodo del supertipo in un sottotipo che differisca per il tipo di valore restituito se questo sia compatibile in assegnamento con l'originale.
Cioè:
Codice:
class A {
Number fai(int a, float b) { ... }
}
class B extends A {
Long fai(int a, float b) { ... }
}
è valido.