⊗ppOpIhCOM 29 of 107 menu

Llamar a un método sobrescrito en POO en PHP

Al sobrescribir, la clase hija pierde acceso al método sobrescrito de la clase padre. Sin embargo, es posible acceder a él de todas formas. Esto se hace usando la palabra clave parent, que hace referencia a la clase padre.

Veamos un ejemplo en el que podríamos necesitar acceso al método de la clase padre. Supongamos que tenemos la siguiente clase padre:

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

Supongamos que en la clase hija sobrescribimos el método del padre:

<?php class Student extends User { public function setName($name) { if (strlen($name) > 0) { $this->name = $name; } else { echo 'student name error'; } } } ?>

Se puede notar que en el método sobrescrito, al cumplirse la condición, se ejecuta el código del método de la clase padre. Resulta una duplicación de código innecesaria.

Podemos eliminarla si llamamos al método del padre. Hagámoslo:

<?php class Student extends User { public function setName($name) { if (strlen($name) > 0) { parent::setName($name); // método del padre } else { echo 'student name error'; } } } ?>

Tenemos el siguiente código:

<?php class User { private $age; public function setAge($age) { if ($age >= 0) { $this->age = $age; } else { echo 'need age more 0'; } } } class Employee extends User { public function setAge($age) { if ($age <= 120) { if ($age >= 0) { $this->age = $age; } else { echo 'need age more 0'; } } else { echo 'need age less 120'; } } } ?>

En la clase Employee, corrija simplifique el setter de la edad, utilizando el método original del padre.

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