Foros del Web » Programando para Internet » PHP »

clase padre puede acceder a metodo del clase de hijo

Estas en el tema de clase padre puede acceder a metodo del clase de hijo en el foro de PHP en Foros del Web. Hola a todos: Yo no sabia que se podia, desde la clase padre acceder a un metodo de la clase hija. Código PHP: class  Padre  ...
  #1 (permalink)  
Antiguo 03/09/2010, 19:55
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 9 meses
Puntos: 35
clase padre puede acceder a metodo del clase de hijo

Hola a todos:
Yo no sabia que se podia, desde la clase padre acceder a un metodo de la clase hija.
Código PHP:
class Padre {
    public function 
metodoPadre() {
        
$this->metodoHijo();
    }
}
class 
Hijo extends Padre{
    public function 
metodoHijo() {
        echo 
'formulario hijo';
    }
}
$b = new Hijo();
$b->metodoPadre();
$a = new Padre();
$a->metodoPadre();//Call to undefined method Padre::metodoHijo() 
Esto está bien? o estoy dormido?
No recuerdo que me lo hallan enseñado. La verdad no lo sabia, estoy sorprendido!
Es correcto implementarlo, por mas que se pueda???
__________________
I am Doyle please insert code.
  #2 (permalink)  
Antiguo 03/09/2010, 20:03
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: clase padre puede acceder a metodo del clase de hijo

se puede?? segun he leido en varios tutoriales no de verdad q me dejas tan sorprenddido si te funciono eso ya que el q hereda las caracteristicas del padre es el hijo y no alrevez pero es bueno ver la opinion de los de mas experiencia
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 03/09/2010, 21:03
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 6 meses
Puntos: 80
Respuesta: clase padre puede acceder a metodo del clase de hijo

Bueno según lo que tengo entendido, esta bien lo que te da el php,
pues:
$b = new Hijo();
En esta primera parte creas una instancia de la clase hijo que por lo tanto hereda, los métodos de la clase padre o sea que la clase hija contendría el métodoPadre.

$b->metodoPadre();
Aqui llamas al metodoPadre pero el que se encuentra en la clase hija por lo tanto conoce al metodoHijo. El único problema es que si instanciaras como lo haces con la variable $a, en este caso el padre no conoce al hijo y por lo tanto fallaría...
En realidad el padre no esta heredando nada, pues la variable es una instancia del método hijo...


$a = new Padre();
Instancias al padre por lo cual no conoce a los metodos del hijo.
$a->metodoPadre();//Call to undefined method Padre::metodoHijo()
Esta bien pues en la clase padre no esta definido el metodoHijo.

Lo que podes tener seria un problema de diseño si se puede instanciar la clase padre directamente, debería ser abstracta para asegurar que solo se instancien sus hijos....

Saludos
Bueno ese es mi punto de vista...
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #4 (permalink)  
Antiguo 03/09/2010, 21:54
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: clase padre puede acceder a metodo del clase de hijo

No se puede acceder de la clase padre los métodos de la clase hija. Por eso te produce un fatal error, porque no vio un método en su clase llamada metodoHijo.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 04/09/2010, 10:06
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 9 meses
Puntos: 35
Respuesta: clase padre puede acceder a metodo del clase de hijo

Pero porque el lenguaje, me deja definir el acceso a un metodo que no defini?
El caso de la clase Padre que accede a $this->metodoHijo();
Si solo defino la clase Padre, y no hago instancia alguna, php no me lanza ningun warning, estilo "Unknow method ::metodoHijo",
al momento de ejecutar el script.
__________________
I am Doyle please insert code.
  #6 (permalink)  
Antiguo 04/09/2010, 12:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: clase padre puede acceder a metodo del clase de hijo

Revisa en tu php.ini el nivel de errores ya que te debe de mandar aunque sea un notice. Recuerda que PHP tiene un método mágico __call que te permite atrapar llamadas a métodos no definidos.

Saludos.

Etiquetas: acceder, clase, metodo, padre
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 20:22.