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.

Now answer the exercise about the content:

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

You are right! Congratulations, now go to the next page

You missed! Try again.

Next page of the Free Ebook:

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

Earn your Certificate for this Course for Free! by downloading the Cursa app and reading the ebook there. Available on Google Play or App Store!

Get it on Google Play Get it on App Store

+ 6.5 million
students

Free and Valid
Certificate with QR Code

48 thousand free
exercises

4.8/5 rating in
app stores

Free courses in
video, audio and text