A linguagem Java introduziu o Generics na versão SE 5, o que permitiu parametrizar tipos na definição de classes, interfaces e métodos. No trecho de código abaixo, há a implementação de duas classes, uma utilizada para calcular a nota em uma disciplina de alunos de graduação e outra para alunos de pós-graduação.
public class CalculaNotaGraduacao extends CalculaNota<AlunoGraduacao> {
public double calculaNota(AlunoGraduacao aluno) {
double nota = 0; // trecho de código omitido return nota;
}
}
public class CalculaNotaPosGraduacao extends
CalculaNota<AlunoPosGraduacao>{
public double calculaNota(AlunoPosGraduacao aluno) {
double nota = 0;
// trecho de código omitido
return nota;
}
}
A classe pai utilizada no trecho de código acima pode ser implementada pelo seguinte trecho de código: