Inicio
Software
Programación
HTML Programación - PHP (ini) Programación - PHP POO Programación - PHP / HTML SQL Java
Hardware
Desarrollos
Quién soy Mapa del sitio

PHP - POO Completo 10

Imprimir
Categoría: PHP - POO Completo
Escrito por Ch4rl1X Visitas: 1087

Les traigo las famosas herencias. Creamos la clase operación que contiene los atributos $valor1, $valor2 y $resultado. Definimos el método cargar1 con el parámetro $v lo mismo para el resto de los métodos. Extendemos o heredamos el uso de operación para utilizar sus atributos en el siguiente y los sumamos.

<html>
<head>
<title>POO_full_10</title>
</head>
<body>
<?php
/*La definición de la clase es exactamente igual a como se viene haciendo*/
class Operacion {
/*A diferencia de como veníamos haciendo ahora colocamos protected a los atributos para que puedan "heredarse"*/
  protected $valor1;
  protected $valor2;
  protected $resultado;
  public function cargar1($v)
  {
    $this->valor1=$v;
  }
  public function cargar2($v)
  {
    $this->valor2=$v;
  }
  public function imprimirResultado()
  {
    echo $this->resultado.'<br>';
  }
}
/*"extends" lo utilizamos como su nombre lo indica, extendiendo los atributos de nuestra clase padre*/
class Suma extends Operacion{
  public function operar()
  {
/*Al extenderla podremos acceder a los valores de la misma*/
    $this->resultado=$this->valor1+$this->valor2; 
  }
}

class Resta extends Operacion{
  public function operar()
  {
    $this->resultado=$this->valor1-$this->valor2;
  }
}

$suma=new Suma();
$suma->cargar1(10);
$suma->cargar2(10);
$suma->operar();
echo 'El resultado de la suma de 10+10 es:';
$suma->imprimirResultado();

$resta=new Resta();
$resta->cargar1(10);
$resta->cargar2(5);
$resta->operar();
echo 'El resultado de la diferencia de 10-5 es:';
$resta->imprimirResultado();

?>
</body>
</html> 

Resultado -> Click aquí.

Instanciamos a los métodos pasando sus parámetros y operamos. Es importante no confundir la colaboración con la herencia si bien la herencia puede crear sus nuevos métodos y atributos esta extiende la funcionalidad no la complementa como la colaboración.

En la siguiente mostramos otro ejemplo en donde generamos un atributo como protected lo cual nos genera un error y demostramos el uso de los permisos de los atributos.

<html>
<head>
<title>POO_full_11</title>
</head>
<body>
<?php
class Operacion {
  protected $valor1;
  protected $valor2;
  protected $resultado;
  public function cargar1($v)
  {
    $this->valor1=$v;
  }
  public function cargar2($v)
  {
    $this->valor2=$v;
  }
  public function imprimirResultado()
  {
    echo $this->resultado.'<br>';
  }
}

class Suma extends Operacion{
  public function operar()
  {
    $this->resultado=$this->valor1+$this->valor2;
  }
}

$suma=new Suma();
$suma->valor1=10;
$suma->cargar2(10);
$suma->operar();
echo 'El resultado de la suma de 10+10 es:';
$suma->imprimirResultado();
?>
</body>
</html> 

Espero que sirva, saludos, Ch4rl1X!