Cosa vuol dire fare l'overriding di un metodo?

Utente HTML.it
chiede

Cosa vuol dire fare l'overriding di un metodo?

Redazione HTML.it
risponde

Come è noto, l’ereditarietà consente ad una classe figlia di ereditare le proprietà ed i metodi delle sue classi antenate (purché non siano definiti con l’access specifier “private”). La possibilità di riprogrammare i metodi ereditati nella classe figlia, sovrascrivendone dunque il comportamento, viene definita overriding. Vediamo un esempio:

public class Impiegato
{
  proteced String nome;
  protected double stipendio;
  protected Date dataNascita;

  public String getDettagli()
  {
    return “Nome: ” + nome + “n” + “Stipendio: ” + stipendio;
  }
}

public class Dirigente extends Impiegato
{
proteced String dipartimento;

public String getDettagli()
{
return “Nome: ” + nome + “n” + “Stipendio: ” + stipendio +
“n” + “Dirigente del Dipartimento: ” + dipartimento;
}
}

Nel caso in cui venga istanziato un oggetto di classe Dirigente ed invocato il metodo getDettagli(), verrà automaticamente richiamato il metodo ridefinito (overridden) nella stessa classe Dirigente.