Ver Mensaje Individual
  #36 (permalink)  
Antiguo 20/01/2005, 12:40
Avatar de Calisco
Calisco
 
Fecha de Ingreso: marzo-2004
Ubicación: Neuquen
Mensajes: 732
Antigüedad: 20 años, 2 meses
Puntos: 4
Palabra Reservada FINAL

Palabra Reservada FINAL
PHP 5 introduce la palabra reservada final, la cual impide clases hijas desde un metodo que tiene el prefijo final en la definicion. Si la clase en si misma es definida como final entonces no puede ser extendida.

PHP 5 introduces the final keyword, which prevents child classes from overriding a method by prefixing the definition with final. If the class itself is being defined final then it cannot be extended.


Ejemplo 19-27. Ejemplo de Metodo FINAL
Código PHP:
<?php
class ClaseBase {
   public function 
test() {
       echo 
"ClaseBase::Llamada a test() \n";
   }
  
   final public function 
MasTesteo() {
       echo 
"ClaseBase::Llamada a masTesteto()\n";
   }
}

class 
ClHijaase extends ClaseBase {
   public function 
masTesteo() {
       echo 
"ClaseHija::Llamada a masTesteo()\n";
   }
}
// Resulta un error Fatal, no puede sobreescribir el metodo final
ClaseBase::masTesteo()
?>
Ejemplo 19-28. Ejemplo de Clase FINAL
Código PHP:
<?php
final class ClaseBase {
   public function 
test() {
       echo 
"ClaseBase::Llamada a test() \n";
   }

   
// Here it doesn't matter if you specify the function as final or not
   
final public function moreTesting() {
       echo 
"ClaseBase::Llamada a masTesteo() \n";
   }
}

class 
ClaseHija extends ClaseBase {
}
// Resulta un error Fatal: La clase Clasehija no puede heredarse desde la clase final (ClaseBase)
?>
__________________
| Cabeza De Raton |