15 - Clases abstractas y concretas.




Problema:

<html>
<head>
<title>Pruebas</title>
</head>
<body>
<?php
abstract class Persona {
  protected $nombre;
  protected $edad;
  public function cargarDatosPersonales($nom,$ed)
  {
    $this->nombre=$nom;
    $this->edad=$ed;
  }
  public function imprimirDatosPersonales()
  {
    echo 'Nombre:'.$this->nombre.'<br>';
    echo 'Edad:'.$this->edad.'<br>';
  }
}

class Empleado extends Persona{
  protected $sueldo;
  public function cargarSueldo($su)
  {
    $this->sueldo=$su;
  }
  public function imprimirSueldo()
  {
    echo 'Sueldo:'.$this->sueldo.'<br>';
  }
}

//Desmarcar para ver el error producido por la definición de un 
//objeto de una clase abstracta.
//$persona1=new Persona();
//$persona1->cargarDatosPersonales('Rodriguez Pablo',24);
//echo 'Datos personales de la persona:<br>';
//$persona1->imprimirDatosPersonales();
$empleado1=New Empleado();
$empleado1->cargarDatosPersonales('Gonzalez Ana',32);
$empleado1->cargarSueldo(2400);
echo 'Datos personales y sueldo del empleado:<br>';
$empleado1->imprimirDatosPersonales();
$empleado1->imprimirSueldo();
?>
</body>
</html>
  Ejecutar ejemplo	

Confeccionar una clase abstracta Persona que tenga como atributos el nombre y la edad. Definir como responsabilidades un método que cargue los datos personales y otro que los imprima.

Plantear una segunda clase Empleado que herede de la clase Persona. Añadir un atributo sueldo y los métodos de cargar el sueldo e imprimir su sueldo.

Definir un objeto de la clase Persona y ver que error produce. También crear un objeto de la clase Empleado y llamar a sus métodos.


Ver solución

pagina1.php



Retornar