Palavra-Chave 'final'

PHP 5 introduz a palavra-chave 'final', que previne que classes filhas sobrecarreguem um método ou variável. Basta prefixar a definição com 'final'.

Exemplo 19-27. Exemplo de métodos 'final'

<?php
class ClasseBase {
   
public function teste() {
       echo
"ClasseBase::teste() chamado\n";
   }
   
   
final public function maisTeste() {
       echo
"ClasseBase::maisTeste() chamado\n";
   }
}

class
ClasseFilha extends ClasseBase {
   
public function maisTeste() {
       echo
"ClasseFilha::maisTeste() called\n";
   }
}
// Resulta em erro Fatal: Não pode sobrescrever método final ClasseBase::maisTeste()
?>

Exemplo 19-28. Exemplo de classe Final

<?php
final
class ClasseBase {
   
public function teste() {
       echo
"Método ClasseBase::teste() chamado\n";
   }

   
// Aqui não importa se você especificar a função como Final ou não
   
final public function maisTeste() {
       echo
"Método ClasseBase::maisTeste() chamado\n";
   }
}

class
ClasseFilha extends ClasseBase {
}
// Resulta em erro Fatal: A classe ClasseFilha não pode herdar de uma classe Final (ClasseBase)
?>