Ver Mensaje Individual
  #7 (permalink)  
Antiguo 24/11/2008, 09:23
Avatar de Lord Kazuky
Lord Kazuky
 
Fecha de Ingreso: junio-2006
Ubicación: 7F.00.00.01
Mensajes: 123
Antigüedad: 17 años, 10 meses
Puntos: 5
Respuesta: Herencia de clases con metodos estaticos

Buenas . Dure otro rato dandole vueltas y hasta saque un código que me permitía hacer lo que buscaba:

Código PHP:
class A{
 protected static 
$class_name __CLASS__;
 
 public static function 
iniClassName(){
    
self::$class_name __CLASS__;
 }
    
 public static function 
run(){
    echo(
"<br>Metodo 'Run' definido en: A");    
    
call_user_func( array(self::$class_name"xxx") );
    
call_user_func( array(self::$class_name"yyy") );
 }
 
 public static function 
xxx(){
    echo(
"<br>Metodo 'xxx' definido en: A");
 }
 
 public static function 
yyy(){
    echo(
"<br>Metodo 'yyy' definido en: A");
 }
 
}

class 
extends A{

 public static function 
iniClassName(){
    
self::$class_name __CLASS__;
 }

 public static function 
run(){    
    echo(
"<br>Metodo 'Run' definido en: B");
    
parent::run();
 }

 public static function 
xxx(){
    echo(
"<br>Metodo 'xxx' definido en: B");
    
parent::xxx();
 }
 
}

B::iniClassName();
B::run();

/* Salida:
Metodo 'Run' definido en: B
Metodo 'Run' definido en: A
Metodo 'xxx' definido en: B
Metodo 'xxx' definido en: A
Metodo 'yyy' definido en: A
*/ 
Claro que despues de verlo y aunque funciona, pues estaría agregando complejidad innecesaria algo que puede ser muy simple. Y si además pues hay reglas, si mejor las sigo y no me complico la vida .

Gracias ;)
__________________
Saludos.
"Cualquier tonto puede escribir código que un computador entiende. Los buenos programadores escriben código que los humanos pueden entender. ;)"