Java possibilita o uso dos recursos da programação orientada a objetos. Um desses recursos oferece um mecanismo para a generalização e representa uma técnica avançada de programação, cuja ideia geral é a de que uma determinada classe mais genérica (a super classe ) possa assumir diferentes comportamentos , gerando o bjetos distintos , dependendo de certas condições. Na prática, quer dizer que um mesmo objeto pode executar métodos diferentes, dependendo do momento de sua criação.