0Pricing
PHP Academy · Aula

Polimorfismo

Explore a sobrescrita de métodos e o comportamento dinâmico na POO

Polimorfismo é uma aula grátis de PHP Academy no CoddyKit. Esta é a aula 5 de 5. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de PHP Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de PHP Academy inclui 5 aulas no total.

Polimorfismo em PHP

Polimorfismo em PHP

Bem-vindo à lição sobre polimorfismo! Nesta lição, você aprenderá como o polimorfismo permite que os objetos assumam várias formas e possibilita a criação de código flexível e reutilizável em PHP. Vamos nos aprofundar!

Polimorfismo — ilustração 1

O que é polimorfismo?

O que é polimorfismo?

O polimorfismo permite que os objetos assumam várias formas. Em PHP, isso significa que um método pode se comportar de maneira diferente dependendo do objeto que o chama. Isso é obtido por meio da sobrescrita de métodos ou da implementação de uma interface.

Ponto-chave: O polimorfismo simplifica o código e aumenta a flexibilidade ao permitir que o mesmo método execute tarefas diferentes dependendo do contexto.

Polimorfismo por meio da sobrescrita de métodos

Polimorfismo por meio da sobrescrita de métodos

Quando uma classe filha sobrescreve um método na classe pai, ela fornece sua própria implementação. Exemplo:

Ponto-chave: A sobrescrita de métodos permite que classes diferentes definam um comportamento específico para o mesmo método.

<?php
  class Animal {
    public function speak() {
      echo "The animal makes a sound.";
    }
  }

  class Dog extends Animal {
    public function speak() {
      echo "The dog barks.";
    }
  }

  class Cat extends Animal {
    public function speak() {
      echo "The cat meows.";
    }
  }

  $animals = [new Dog(), new Cat()];

  foreach ($animals as $animal) {
    $animal->speak();
    echo "<br>";
  }
?>

Polimorfismo usando interfaces

Polimorfismo usando interfaces

As interfaces fornecem um contrato para que as classes implementem métodos específicos. Isso garante que todas as classes que implementam a interface definam os métodos necessários. Exemplo:

Dica: As interfaces ajudam a impor consistência entre as classes.

<?php
  interface Shape {
    public function calculateArea();
  }

  class Circle implements Shape {
    private $radius;

    public function __construct($radius) {
      $this->radius = $radius;
    }

    public function calculateArea() {
      return pi() * pow($this->radius, 2);
    }
  }

  class Rectangle implements Shape {
    private $width, $height;

    public function __construct($width, $height) {
      $this->width = $width;
      $this->height = $height;
    }

    public function calculateArea() {
      return $this->width * $this->height;
    }
  }

  $shapes = [new Circle(5), new Rectangle(4, 6)];

  foreach ($shapes as $shape) {
    echo "Area: " . $shape->calculateArea() . "<br>";
  }
?>

Benefícios do polimorfismo

Benefícios do polimorfismo

O polimorfismo oferece várias vantagens:

  • Incentiva a reutilização de código.
  • Torna seu código mais flexível e escalável.
  • Simplifica a adição de novas classes e funcionalidades.

Exemplo: Adicionar uma nova forma ao exemplo anterior exige implementar a interface Shape e definir o método calculateArea().

Polimorfismo com classes abstratas

Polimorfismo com classes abstratas

As classes abstratas também podem ser usadas para alcançar o polimorfismo. As classes filhas sobrescrevem os métodos abstratos para fornecer implementações específicas. Exemplo:

Ponto-chave: As classes abstratas impõem uma estrutura base e, ao mesmo tempo, permitem o polimorfismo.

<?php
  abstract class Vehicle {
    abstract public function start();
  }

  class Car extends Vehicle {
    public function start() {
      echo "Car engine starts.<br>";
    }
  }

  class Motorcycle extends Vehicle {
    public function start() {
      echo "Motorcycle engine starts.<br>";
    }
  }

  $vehicles = [new Car(), new Motorcycle()];

  foreach ($vehicles as $vehicle) {
    $vehicle->start();
  }
?>

Aplicações no mundo real

Aplicações no mundo real

O polimorfismo é amplamente usado no desenvolvimento de software:

  • Processamento de pagamentos: Diferentes métodos de pagamento (cartão de crédito, PayPal) implementam a mesma interface.
  • Desenvolvimento de jogos: Diferentes tipos de personagens sobrescrevem o mesmo método para apresentar comportamentos únicos.
  • Sistemas de registro: Vários registradores (arquivo, banco de dados) usam a mesma interface.

Ponto-chave: O polimorfismo ajuda a criar sistemas escaláveis e fáceis de manter.

Desafios do polimorfismo

Desafios do polimorfismo

Embora o polimorfismo seja poderoso, ele apresenta alguns desafios:

  • Pode aumentar a complexidade se não for implementado corretamente.
  • Exige um planejamento cuidadoso das hierarquias de classes e das interfaces.
  • Pode causar erros em tempo de execução se os métodos sobrescritos não forem implementados corretamente.

Dica: Sempre teste completamente o comportamento polimórfico para garantir a correção.

Muito bem!

Muito bem!

Parabéns! Você aprendeu sobre polimorfismo, incluindo sua implementação usando sobrescrita de métodos, interfaces e classes abstratas. O polimorfismo é uma ferramenta poderosa para criar código flexível e reutilizável. Na próxima lição, exploraremos as classes abstratas com mais detalhes. Vamos continuar programando!

Polimorfismo — ilustração 10

Perguntas Frequentes

A aula “Polimorfismo” é grátis?

Sim — o texto completo de “Polimorfismo” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de PHP Academy, atualize para CoddyKit PRO. O curso de PHP Academy inclui 5 aulas no total.

O que vou aprender em “Polimorfismo”?

Explore a sobrescrita de métodos e o comportamento dinâmico na POO Você pratica PHP Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar PHP Academy?

Nenhuma experiência prévia é necessária. PHP Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 5 de 5.

Quanto tempo leva a aula “Polimorfismo”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de PHP Academy?

Sim. Cada aula de PHP Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Introdução à POO em PHP
  2. Definindo classes e objetos
  3. Herança
  4. Encapsulamento e modificadores de acesso
  5. Polimorfismo
← Voltar para PHP Academy