Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/06/2013, 21:49
Avatar de Italico76
Italico76
 
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Duda en POO - Herencia

Estimado: la hice larga... pero al final te respondo lo mejor que puedo

- Los datos privados de la clase Base *solo* los puedes acceder desde la clase Base. Desde la Derivada accedes a OTRA variable con el mismo nombre que no se inicializa hasta que no le des valor.

- Los datos protegidos de la Base, desde ambas, haz de cuenta que accedes "por referencia", o sea es la misma variable.

Ojo ... si tienes un constructor en la clase Base y ahi seteas variables privadas, para poder "verlas" con valor en la clase Derivada te toca hacer que el constructor de la clase derivada llame al constructor de la clase Base (padre) para que inicialice esa variable con ese valor.

Código PHP:
Class Foo
{ ... }

Class 
Bar extends Foo
{
 
    public function 
__construct()
    {
       
parent::__construct();       
    }     
...



No hacer eso ultimo me estubo confundiendo un rato largo porque no veia valores que supuestamente metia en los objetos de la clase padre

Cita:
¿ Por que la clase Liquidacion puede acceder a los metodos protected de la clase Datos ?....
Ahora... eso es con DATOS.... con METODOS es lo mismo... tu puedes acceder a los metodos de la clase Base (Datos) porque estan en el mismo scope ... es como si los hubieras declarado Private en tu clase Liquidacion esos metodos protected.

Si haces Private los metodos en Datos... ya solo podras accederlos desde Datos y si re-declaras en Liquidacion sera OTRA funcion y no la misma, accediendo a su scope o sea los datos de Liquidacion y NO de Datos
__________________
Salu2!

Última edición por Italico76; 26/06/2013 a las 23:36