Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Introdução ao Polimorfismo | Seção
Practice
Projects
Quizzes & Challenges
Questionários
Challenges
/
Programação Orientada a Objetos em Python

bookIntrodução ao Polimorfismo

Note
Definição

Polimorfismo é um princípio fundamental da programação orientada a objetos que permite que objetos de diferentes tipos sejam tratados como o mesmo tipo por meio de uma interface comum. Isso torna o código mais flexível e mais fácil de manter e expandir.

Considere o polimorfismo como a existência de diferentes objetos que respondem à mesma chamada de método, mas cada um de forma única. Por exemplo, ao chamar o método speak() em diferentes animais, os resultados são distintos:

  • Um Dog retorna "Woof!";
  • Um Cat retorna "Meow!";
  • Um Cow retorna "Moo!".

O nome do método permanece o mesmo, mas cada objeto fornece sua própria implementação.

Note
Nota

Sem polimorfismo, o código exige funções separadas e condicionais complexas, tornando-o mais difícil de expandir e sujeito à duplicação e problemas de manutenção.

Python oferece diversas formas de polimorfismo, cada uma proporcionando uma maneira diferente para objetos compartilharem uma interface comum enquanto apresentam comportamentos distintos.

Duck typing
expand arrow

Permite o uso de objetos com base em seu comportamento (métodos/atributos que possuem) em vez de seu tipo.

Sobrescrita de método
expand arrow

Permite que uma subclasse forneça sua própria implementação de um método herdado de uma classe pai, possibilitando comportamento especializado.

Sobrecarga de operadores
expand arrow

Redefine como operadores (+, -, *, etc.) se comportam para objetos personalizados, tornando seu uso natural e intuitivo.

Classes base abstratas (ABCs)
expand arrow

Define contratos formais que as subclasses devem seguir, garantindo consistência e projeto estruturado entre as implementações.

Considere um exemplo do mundo real de um reprodutor de mídia. A classe MediaPlayer não precisa saber se está lidando com um AudioFile, VideoFile ou ImageFile. Ela simplesmente chama o método play() em cada objeto de mídia, e cada tipo lida com a reprodução de forma própria e adequada. Isso é exatamente o que o polimorfismo nos permite fazer.

question mark

Qual é o principal objetivo do polimorfismo em POO?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 19

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

bookIntrodução ao Polimorfismo

Deslize para mostrar o menu

Note
Definição

Polimorfismo é um princípio fundamental da programação orientada a objetos que permite que objetos de diferentes tipos sejam tratados como o mesmo tipo por meio de uma interface comum. Isso torna o código mais flexível e mais fácil de manter e expandir.

Considere o polimorfismo como a existência de diferentes objetos que respondem à mesma chamada de método, mas cada um de forma única. Por exemplo, ao chamar o método speak() em diferentes animais, os resultados são distintos:

  • Um Dog retorna "Woof!";
  • Um Cat retorna "Meow!";
  • Um Cow retorna "Moo!".

O nome do método permanece o mesmo, mas cada objeto fornece sua própria implementação.

Note
Nota

Sem polimorfismo, o código exige funções separadas e condicionais complexas, tornando-o mais difícil de expandir e sujeito à duplicação e problemas de manutenção.

Python oferece diversas formas de polimorfismo, cada uma proporcionando uma maneira diferente para objetos compartilharem uma interface comum enquanto apresentam comportamentos distintos.

Duck typing
expand arrow

Permite o uso de objetos com base em seu comportamento (métodos/atributos que possuem) em vez de seu tipo.

Sobrescrita de método
expand arrow

Permite que uma subclasse forneça sua própria implementação de um método herdado de uma classe pai, possibilitando comportamento especializado.

Sobrecarga de operadores
expand arrow

Redefine como operadores (+, -, *, etc.) se comportam para objetos personalizados, tornando seu uso natural e intuitivo.

Classes base abstratas (ABCs)
expand arrow

Define contratos formais que as subclasses devem seguir, garantindo consistência e projeto estruturado entre as implementações.

Considere um exemplo do mundo real de um reprodutor de mídia. A classe MediaPlayer não precisa saber se está lidando com um AudioFile, VideoFile ou ImageFile. Ela simplesmente chama o método play() em cada objeto de mídia, e cada tipo lida com a reprodução de forma própria e adequada. Isso é exatamente o que o polimorfismo nos permite fazer.

question mark

Qual é o principal objetivo do polimorfismo em POO?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 19
some-alt