17.7. Classes e Objetos: Polimorfismo

Página 51

Polimorfismo é um dos quatro pilares fundamentais da Programação Orientada a Objetos (POO). O termo vem do grego, onde "poli" significa muitos e "morphos" significa formas. Portanto, polimorfismo é a capacidade de um objeto assumir muitas formas. Na programação, isso se traduz na capacidade de uma variável, função ou objeto representar mais de um tipo de dado.

Para entender o polimorfismo, é útil primeiro compreender as classes e os objetos. Uma classe é um modelo ou um esboço que descreve as variáveis e os métodos comuns a todos os objetos de um certo tipo. Um objeto é uma instância de uma classe. Quando uma classe é definida, nenhum espaço de memória é alocado. Apenas quando é criado um objeto da classe é que a memória é alocada.

Por exemplo, considere uma classe chamada "Animal". Esta classe pode ter variáveis como "nome" e "idade" e métodos como "comer" e "dormir". Agora, podemos criar objetos desta classe, como "cachorro" e "gato", que são ambos animais, mas se comportam de maneira diferente. O cachorro pode latir, enquanto o gato pode miar. Isto é onde o polimorfismo entra em jogo.

No polimorfismo, uma classe pode ter muitos métodos com o mesmo nome, mas com diferentes implementações. Por exemplo, a classe "Animal" pode ter um método "som" que produz diferentes sons dependendo do tipo de animal. Para o objeto "cachorro", o método "som" pode retornar "latido", enquanto para o objeto "gato", ele pode retornar "miado".

Existem dois tipos básicos de polimorfismo: estático (ou sobrecarga) e dinâmico (ou substituição).

O Polimorfismo Estático ocorre em tempo de compilação. Aqui, o método a ser invocado é determinado pelo compilador. A sobrecarga de método e a sobrecarga de operador são exemplos de polimorfismo estático.

Por outro lado, o Polimorfismo Dinâmico ocorre em tempo de execução. Aqui, o método a ser invocado é determinado em tempo de execução. A substituição de método é um exemplo de polimorfismo dinâmico.

Para exemplificar, suponha que temos uma superclasse chamada "Animal" e duas subclasses chamadas "Cachorro" e "Gato". A superclasse tem um método chamado "som" que é substituído pelas subclasses. Se criarmos um objeto da superclasse e um objeto de cada uma das subclasses, e então chamarmos o método "som" para cada um deles, o resultado será diferente para cada objeto, mesmo que o método chamado seja o mesmo. Isso é polimorfismo.

O polimorfismo é uma ferramenta poderosa que permite aos programadores escreverem código mais limpo e mais compreensível, e é um dos conceitos fundamentais da Programação Orientada a Objetos. Ele permite que os programadores manipulem objetos de diferentes classes através de uma interface comum, o que pode facilitar a manutenção e a expansão do código.

Em resumo, o polimorfismo é um conceito fundamental em programação orientada a objetos que permite que uma única interface represente uma generalidade de classes. Ele fornece um meio de integrar a complexidade ao permitir que o mesmo código seja utilizado para representar diferentes tipos de comportamento.

Agora responda o exercício sobre o conteúdo:

O que é Polimorfismo na Programação Orientada a Objetos (POO)?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Próxima página do Ebook Gratuito:

5217.8. Classes e Objetos: Associação entre classes

Ganhe seu Certificado deste Curso Gratuitamente! ao baixar o aplicativo Cursa e ler o ebook por lá. Disponível na Google Play ou App Store!

Disponível no Google Play Disponível no App Store

+ de 6,5 milhões
de alunos

Certificado Gratuito e
Válido em todo o Brasil

48 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, áudio e texto