2009-12-25 27 views
10

Digamos que tengo una clase principal y una clase infantil. ChildClass extiende ParentClass. Ahora ParentClass tiene este buen constructor:¿Puede una subclase heredar también el constructor de la clase padre, o debe tener cada clase su propio constructor?

function __construct($tplFile) { 
    $this->$tplFile = $tplFile; 
} 

Will ChildClass heredará automáticamente este? Y si no agrego ningún constructor a ChildClass, ¿podré decir $foo = new ChildClass("foo.tpl.php"); para que se llame al constructor de ParentClass?

Respuesta

11

ChildClass heredará automáticamente el constructor.

0

La respuesta a ambas preguntas es .

18

Desde el manual de PHP:

Nota: Los constructores padres no son llamados implícitamente si la clase hijo define un constructor . Para ejecutar un constructor padre, se requiere una llamada a parent :: __ construct() dentro del constructor hijo .

+1

Gracias - esta respuesta fue útil para mí. –

+0

Nota: Llamar a parent :: __ construct() no redirige los parámetros. Use esto: if (func_num_args()> 0) { \t $ constructorArgs = func_get_args(); \t call_user_func_array (array ($ this, 'parent :: __ construct'), $ constructorArgs); } else { \t parent :: __ construct(); } – StanE

Cuestiones relacionadas