Junior
O que é uma classe abstrata?
sobes.tech IA
Resposta da IA
Uma classe abstrata é uma classe que não pode ser instanciada diretamente, ou seja, não é possível criar um objeto com new. Ela é destinada a ser usada como classe base para outras classes (subclasses).
As principais características de uma classe abstrata:
- É declarada com a palavra-chave
abstract. - Pode conter métodos tanto abstratos quanto normais (concretos).
- Os métodos abstratos são declarados com a palavra-chave
abstracte não possuem corpo (implementação). Devem ser implementados nas classes não abstratas que as estendem. - Pode conter valores constantes e propriedades.
<?php
abstract class AbstractClass
{
// Método abstrato - deve ser implementado na classe filha
abstract protected function abstractMethod();
// Método normal
public function concreteMethod()
{
echo "Este é um método concreto\n";
}
}
class ConcreteClass extends AbstractClass
{
// Implementação do método abstrato
protected function abstractMethod()
{
echo "Esta é a implementação do método abstrato\n";
}
}
// Não é possível criar uma instância de uma classe abstrata
// $obj = new AbstractClass(); // Erro
// Pode-se criar uma instância da classe concreta
$obj = new ConcreteClass();
$obj->abstractMethod();
$obj->concreteMethod();
Classes abstratas são usadas para definir uma interface e funcionalidades comuns para um grupo de classes relacionadas, deixando os detalhes de implementação para as classes filhas específicas. Do ponto de vista do consumidor do código, é possível trabalhar com objetos das classes filhas usando o tipo da classe base abstrata, garantindo o polimorfismo.