Herança é um conceito central na programação orientada a objetos, que permite criar novas classes com base em classes existentes. Com a herança, você pode reutilizar código e simplificar a estrutura de seus programas. Este guia te ensinará os aspectos básicos da herança em PHP e mostrará, através de um exemplo concreto, como você pode implementar este conceito efetivamente em seus projetos.

Principais descobertas

  • A herança permite que você derive uma nova classe de uma classe existente.
  • Propriedades e métodos da classe base são herdados pela classe derivada.
  • Métodos podem ser sobrescritos na classe derivada para implementar comportamentos específicos.

Guia passo a passo sobre herança em PHP

1. Definindo a classe base

Comece definindo uma classe base. Neste exemplo, criaremos uma classe Carro, que inclui uma função básica para acelerar. Esta classe possui uma propriedade pública para a velocidade e um método para aumento de velocidade.

Herança em PHP - Usar de forma eficaz

Com esta estrutura, nosso Carro é capaz de aumentar sua velocidade quando o método acelerar é chamado.

2. Criando uma classe derivada

Agora que nosso Carro base está definido, criaremos uma classe derivada chamada CarroDeCorrida. Esta classe expande a funcionalidade do Carro ao herdar a classe base.

Herança em PHP - Usar de forma eficaz

Usando extends, a classe CarroDeCorrida é subordinada à classe Carro. Assim, o CarroDeCorrida tem acesso às suas propriedades e métodos.

3. Instanciando objetos

Agora podemos instanciar tanto um Carro normal quanto um CarroDeCorrida. Isso nos dá a possibilidade de testar os métodos das duas classes.

Herança em PHP - Usar efetivamente

Aqui vemos que o carroNormal e o carroDeCorrida têm suas próprias instâncias e podem chamar o método acelerar.

4. Sobrescrevendo métodos

Na classe CarroDeCorrida, podemos sobrescrever o método acelerar para introduzir um comportamento mais sofisticado.

Herança em PHP – Utilização Eficiente

Com parent::acelerar() chamamos o método da classe pai e depois adicionamos uma lógica adicional para usar o turbo.

5. Acessando propriedades e métodos

Se você agora quiser exibir a velocidade de ambos os veículos, pode acessar a propriedade velocidade.

Herança em PHP – Utilizar de forma eficaz

Essas saídas mostram as velocidades atuais de ambos os carros.

6. Entendendo a Polimorfia

Um tema central no contexto de herança é a polimorfia. Isso envolve o uso do mesmo método em diferentes contextos. Um exemplo é que tanto o Carro quanto o CarroDeCorrida têm o método acelerar, mas este é implementado de forma diferente.

Herança em PHP – Usar efetivamente

Com esta funcionalidade, você pode acelerar qualquer tipo de veículo pela mesma interface.

7. Conclusão sobre a herança

A herança é uma ferramenta poderosa em PHP, que permite expandir classes existentes e criar código reutilizável. Isso permite estruturar aplicações complexas de forma eficiente. A possibilidade de sobrescrever métodos significa que você pode implementar comportamentos específicos em classes derivadas, sem ter que reescrever toda a lógica.

Resumo - Programação orientada a objetos com PHP: Entendendo a herança

O tratamento da herança em PHP permite que você mantenha uma abordagem estruturada no desenvolvimento do seu software. Você pode projetar classes para que se construam umas sobre as outras e facilitem seu trabalho.

Perguntas frequentes

Qual é a vantagem da herança em PHP?A herança promove a reutilização de código e simplifica a estrutura de software.

Como posso sobrescrever um método em uma classe derivada?Use a mesma assinatura de método e opcionalmente parent::nomeDoMetodo() para aproveitar os métodos pai.

O que é Polimorfia?Polimorfia refere-se à capacidade de implementar o mesmo método de maneira diferente, com base na instância do objeto.

O que acontece se eu sobrescrever vários métodos?Cada método pode ser projetado especificamente para a classe derivada, resultando em comportamentos diferentes.

Existem termos alternativos para herança?Sim, na literatura técnica frequentemente se fala em "derivação" ou "criação de subclasses".