Extensão de classes com herança
Use extends para criar hierarquias de classes e substituir métodos.
Extensão de classes com herança é uma aula grátis de PHP Academy no CoddyKit. Esta é a aula 1 de 4. 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 4 aulas no total.
Introdução: Herança no PHP
Herança permite que uma classe (filha) reutilize e amplie o código de outra classe (pai) usando a palavra-chave extends. O PHP oferece herança simples.
Conceitos principais
Conceitos principais:
- Child herda todos os membros públicos e protegidos
- Substitua métodos da classe pai para alterar o comportamento
- Chame o método da classe pai com
parent:: - Use
finalpara impedir substituições
Uso básico de extends
Exemplo:
<?php
class Shape {
public function __construct(protected string $color) {}
public function describe(): string { return "A {$this->color} shape"; }
}
class Circle extends Shape {
public function __construct(string $color, private float $radius) {
parent::__construct($color);
}
public function area(): float { return M_PI * $this->radius ** 2; }
}
$c = new Circle('red', 5);
echo $c->describe(); // A red shape
echo round($c->area()); // 79Sobrescrita de métodos
Continuação:
<?php
class Logger {
public function log(string $msg): void {
echo "[LOG] $msg" . PHP_EOL;
}
}
class DatabaseLogger extends Logger {
public function log(string $msg): void {
// Extend parent behavior
parent::log($msg);
// Also save to DB
echo "[DB] Saved: $msg" . PHP_EOL;
}
}
$l = new DatabaseLogger();
$l->log('User login');Palavra-chave final
Mais detalhes:
<?php
class PaymentProcessor {
final public function processPayment(float $amount): void {
// Critical logic — cannot be overridden
$this->validate($amount);
$this->charge($amount);
$this->log($amount);
}
protected function validate(float $amount): void { /* ... */ }
protected function charge(float $amount): void { /* ... */ }
protected function log(float $amount): void { /* ... */ }
}Verificação com instanceof
Uso prático:
<?php
class Vehicle {}
class Car extends Vehicle {}
class ElectricCar extends Car {}
$ev = new ElectricCar();
var_dump($ev instanceof ElectricCar); // true
var_dump($ev instanceof Car); // true
var_dump($ev instanceof Vehicle); // true
// Also works with interfaces
var_dump($ev instanceof Countable); // falseClasse Base abstrata
Avançado:
<?php
abstract class Notification {
abstract public function send(string $message): bool;
public function sendBatch(array $messages): void {
foreach ($messages as $msg) {
$this->send($msg);
}
}
}
class EmailNotification extends Notification {
public function send(string $message): bool {
echo "Email: $message" . PHP_EOL;
return true;
}
}Padrão
Padrões comuns de herança do PHP são usados para resolver de forma organizada problemas recorrentes de design. Aplique-os de maneira consistente para obter um código legível e fácil de manter.
Quando usar
Saber quando aplicar a herança do PHP é tão importante quanto saber como. O uso excessivo leva à complexidade; o uso insuficiente leva à duplicação.
Exemplo do mundo real
Em aplicações reais, a herança do PHP aparece com frequência em estruturas, ORMs e camadas de serviço. Compreendê-la prepara você para contribuir com projetos profissionais em PHP.
Armadilhas comuns
Evite estes erros com a herança do PHP:
- Sempre chame parent::__construct() para inicializar o estado da classe pai
- Não substitua métodos apenas para chamar a classe pai sem fazer alterações
- Use final em métodos críticos para a segurança
- Prefira a composição a hierarquias profundas de herança
Verificação rápida
Qual palavra-chave impede que um método seja substituído em uma subclasse?
Recapitulação: Herança no PHP
Resumo:
- Sempre chame parent::__construct() para inicializar o estado da classe pai
- Não substitua métodos apenas para chamar a classe pai sem fazer alterações
- Use final em métodos críticos para a segurança
- Prefira a composição a hierarquias profundas de herança
Perguntas Frequentes
A aula “Extensão de classes com herança” é grátis?
Sim — o texto completo de “Extensão de classes com herança” é 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 4 aulas no total.
O que vou aprender em “Extensão de classes com herança”?
Use extends para criar hierarquias de classes e substituir métodos. 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 1 de 4.
Quanto tempo leva a aula “Extensão de classes com herança”?
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
- Extensão de classes com herança
- Classes e métodos abstratos
- Implementação de interfaces
- Traits para reutilização de código