⊗ppOpIhCn 30 of 107 menu

Constructor en herencia en POO en PHP

En la herencia se puede sobrescribir el constructor del padre. Veamos un ejemplo. Supongamos que tenemos la siguiente clase padre:

<?php class User { private $name; private $surn; public function __construct($name, $surn) { $this->name = $name; $this->surn = $surn; } public function getName() { return $this->name; } public function getSurn() { return $this->surn; } } ?>

Supongamos que de la clase padre hereda la siguiente clase:

<?php class Student extends User { } ?>

Supongamos que queremos en la clase hija ampliar el constructor, añadiendo parámetros adicionales:

<?php class Student extends User { private $year; public function __construct($name, $surn, $year) { } } ?>

En este caso necesitamos obligatoriamente llamar en la primera línea al constructor del padre mediante parent::__construct():

<?php class Student extends User { private $year; public function __construct($name, $surn, $year) { parent::__construct($name, $surn); } } ?>

El comando parent::__construct() en esencia es el constructor del padre. Por lo tanto pasemos a él los parámetros requeridos:

<?php class Student extends User { private $year; public function __construct($name, $surn, $year) { parent::__construct($name, $surn); } } ?>

Ahora en el hijo el año de estudio lo escribimos en su propia propiedad del hijo:

<?php class Student extends User { private $year; public function __construct($name, $surn, $year) { parent::__construct($name, $surn); $this->year = $year; } } ?>

Hagamos un getter para el año de estudio:

<?php class Student extends User { private $year; public function __construct($name, $surn, $year) { parent::__construct($name, $surn); $this->year = $year; } public function getYear() { return $this->year; } } ?>

Supongamos que la clase Employee hereda de la clase User de esta lección.

Sobrescriba en la clase Employee el constructor del padre, añadiéndole parámetros con la edad y el salario.

Haga getters para la edad y el salario.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar