Reemplazos

Hemos visto clases padre y subclases hija que declaran nuevos atributos y operaciones que no estaban implementadas en la clase padre. A veces nos resultará útil volver a declarar los mismos atributos y operaciones. Podemos hacerlo para asignar un atributo de la subclase, un valor diferente para el mismo atributo de se superclase o aplicar una funcionalidad diferente con respecto a la misma operación de su superclase. Este recurso se llama reemplazo.

La palabra clave parent permite invocar la versión original de la operación en la clase principal (Ojo, PHP utilizará los valores de atributo de la subclase) Este ejemplo:

<?php
   class A {
      protected $atributo = "Valor por defecto";
      function operacion() {
        echo "[A->operacion()]<br>";
        echo '$this->atributo: ' . $this->atributo . "<br>";
      }
   }
   class B extends A {
      protected $atributo = "Valor modificado";
      function operacion () {
         echo "[B->operacion()]<br>";
         echo '$this->atributo: ' . $this->atributo . "<br>"; parent::operacion();
      }
   }
   $a = new A();
   $a->operacion();
   $b = new B();
   $b->operacion();
?>

Da como resultado:

[A->operacion()]
$this->atributo: Valor por defecto [B->operacion()]
$this->atributo: Valor modificado [A->operacion()]
$this->atributo es Valor modificado

results matching ""

    No results matching ""