Middle
Uma classe abstrata pode conter um método privado e por quê?
sobes.tech IA
Resposta da IA
Sim, pode.
O método privado numa classe abstrata é visível e acessível apenas dentro da própria classe abstrata. Isto pode ser útil para implementar lógica interna necessária para o funcionamento de outros métodos dessa classe (por exemplo, operações auxiliares), ocultando essa lógica às classes que herdam.
Os métodos que devem estar disponíveis para serem sobrescritos ou utilizados em classes filhas são declarados como protected ou public.
<?php
abstract class AbstractExample {
abstract public function doSomething();
private function internalHelper() {
// Método privado, visível apenas dentro de AbstractExample
echo "A executar operação interna.\n";
}
protected function protectedHelper() {
// Método protegido, também visível em classes herdadas
$this->internalHelper(); // Chamada ao método privado de dentro
echo "A executar operação protegida.\n";
}
}
class ConcreteExample extends AbstractExample {
public function doSomething() {
echo "A fazer algo específico.\n";
$this->protectedHelper(); // Acesso ao método protected
// $this->internalHelper(); // Erro: não há acesso ao método privado
}
}
$obj = new ConcreteExample();
$obj->doSomething();