Tengo esta clase:
<?php
class Soporte
{
public $titulo;
protected $numero;
private $precio;
function __construct($tit,$num,$precio)
{
$this->titulo = $tit;
$this->numero = $num;
$this->precio = $precio;
}
public function dame_precio_sin_iva()
{ return $this->precio; }
public function dame_precio_con_iva()
{ return $this->precio * 1.16; }
public function dame_numero_identificacion()
{ return $this->numero; }
public function imprime_caracteristicas()
{
echo "<b>" . $this->titulo . "</b>";
echo "<br>" . $this->precio . " (IVA no incluido)";
echo "<br>" . "Numero: " . $this->numero;
}
}
$soporte1 = new Soporte("Los Intocables",22,3);
echo "<b>" . $soporte1->titulo . "</b>";
echo "<br>Precio: " . $soporte1->dame_precio_sin_iva() . " euros";
echo "<br>Precio IVA incluido: " . $soporte1->dame_precio_con_iva() . " euros"."<br>";
?>
y esta otra que hereda de la anterior:
<?php
require("Soporte.php");
class Cinta_video extends Soporte
{
private $duracion;
function __construct($tit,$num,$precio,$duracion)
{
parent::__construct($tit,$num,$precio);
$this->duracion = $duracion;
}
public function imprime_caracteristicas()
{
echo "Película en VHS:<br>";
parent::imprime_caracteristicas();
echo "<br>Duración: " . $this->duracion;
}
}
$micinta = new Cinta_video("Los Otros", 22, 4.5, "115 minutos");
echo "<b>" . $micinta->titulo . "</b>";
echo "<br>Precio: " . $micinta->dame_precio_sin_iva() . " euros";
echo "<br>Precio IVA incluido: " . $micinta->dame_precio_con_iva() . " euros";
?>
Cuando ejecuto la clase Cinta_video me salen los mensajes de la padre (Soporte) y ademas los de ella.
Los Intocables
Precio: 3 euros
Precio IVA incluido: 3.48 euros
Los Otros
Precio: 4.5 euros
Precio IVA incluido: 5.22 euros
Segun lo que tengo entendido deberia salirme solo los mensajes de la hija. He programado en otros lenguajes y esto no me sucedia. Por que salen los emnsajes de la clase padre (Soporte)?. Agradecere la ayuda.