Pasar al contenido principal
Jose Luján
Luis Avilés
Álvaro Felipe, Jon Mircha
Álvaro Felipe
Alberto Quiroga
Alexys Lozada, Álvaro Felipe, Daniel Romero, Jon Mircha
Daniel Romero
Alexys Lozada, Daniel Romero
Álvaro Felipe
Francisco Romero
Alexys Lozada
Álvaro Felipe
Jon Mircha
Álvaro Felipe
Daniel Romero
Daniel Romero
Jose Luján
Álvaro Felipe
Freddy Cahuas
Álvaro Felipe
Jon Mircha

Tipos de clases en PHP

Tipos de clases en PHP

Hola gente de EDteam...

...soy su amigo y docente digital Jonathan MirCha, y en esta ocasión quiero hablarles de los tipos de clases que existen en PHP.

  1. Instanciables: Pueden ser instanciadas (se pueden crear objetos) y/o se pueden heredar.
  2. Heredadas: Guardan relación con métodos y atributos de otra.
  3. Finales: Son instanciables pero no se pueden heredar.
  4. Abstractas: Sirven de modelo para otras, NO se pueden instanciar y DEBEN heredarse.

Cuando una clase abstracta, tiene métodos abstractos, estos sólo se deben definir, no deben tener cuerpo. El algoritmo del método abstracto debe ser implementado en las clases que hereden la clase abstracta. Las clases que heredan una abstracta, deben de implementar todos los métodos abstractos de la clase padre. NO existen atributos abstractos.

Ejemplos:

Crea un archivo en tu localhost que se llame evolucion_telefono.php, copia y pega este código:

<?php
//Clase Instanciable
class Telefono {
  public $marca;
  public $modelo;
  protected $medio = 'alámbrico';
  protected $transmision = 'análoga';

  function __construct($marca, $modelo) {
    $this->marca = $marca;
    $this->modelo = $modelo;
  }

  public function llamar() {
    echo '<p>Riiing Riiing!!!</p>';
  }

  public function ver_info() {
    echo "
      <ul>
        <li>$this->marca</li>
        <li>$this->modelo</li>
        <li>$this->medio</li>
        <li>$this->transmision</li>
      </ul>
    ";
  }
}

//Clase Heredada
class Celular extends Telefono {
  protected $medio = 'inalámbrico';
  protected $transmision = 'digital';

  function __construct($marca, $modelo) {
    parent::__construct($marca, $modelo);
  }

  public function vibrar() {
    echo '<p>BRRRR BRRRR!!!</p>';
  }
}

//Clase Final
final class SmartPhone extends Celular {
  public $datos = 'Tengo WIFI';

  function __construct($marca, $modelo) {
    parent::__construct($marca, $modelo);
  }

  public function conectar() {
    echo 'Acceso a Internet!!!';
  }

  public function ver_info() {
    echo "
      <ul>
        <li>$this->marca</li>
        <li>$this->modelo</li>
        <li>$this->medio</li>
        <li>$this->transmision</li>
        <li>$this->datos</li>
      </ul>
    ";
  }
}

/* ********************************************* */

echo '<h1>Herencia y Polimorfismo en PHP</h1>';

echo '<h2>Evolución del Teléfono</h2>';

echo '<h3>Teléfono:</h3>';
$tel_casa = new Telefono('Panasonic', 'KX-TS550');
$tel_casa->llamar();
$tel_casa->ver_info();

echo '<h3>Celular:</h3>';
$mi_cel = new Celular('Nokia', '5120');
$mi_cel->llamar();
$mi_cel->vibrar();
$mi_cel->ver_info();

echo '<h3>SmartPhone:</h3>';
$mi_sp = new SmartPhone('Motorola', 'G4');
$mi_sp->llamar();
$mi_sp->vibrar();
$mi_sp->conectar();
$mi_sp->ver_info();

Crea un archivo en tu localhost que se llame poligonos.php, copia y pega este código:

<?php
abstract class Poligono {
  protected static $lados;
  abstract protected function perimetro();
  abstract protected function area();
}

class Triangulo extends Poligono {
  private $lado_a;
  private $lado_b;
  private $lado_c;
  private $altura;
  public static $lados = 3;

  public function __construct($a, $b, $c, $h) {
    $this->lado_a = $a;
    $this->lado_b = $b;
    $this->lado_c = $c;
    $this->altura = $h;
  }

  public function perimetro() {
    return $this->lado_a + $this->lado_b + $this->lado_c;
  }

  public function area() {
    return ($this->lado_b * $this->altura) / 2;
  }
}

class Cuadrado extends Poligono {
  private $lado;
  public static $lados = 4;

  public function __construct($l) {
    $this->lado = $l;
  }

  public function perimetro() {
    return $this->lado * self::$lados;
  }

  public function area() {
    return pow($this->lado, 2);
  }
}

/* ********************************************* */

echo '<h1>Abstracción en PHP</h1>';

echo '
  <h2>Polígonos</h2>
  <p>Figura geométrica plana que está limitada por tres o más rectas y tiene tres o más ángulos y vértices.</p>
  <h3>Perímetro</h3>
  <p>El perímetro de un polígono es igual a la suma de las longitudes de sus lados.</p>
  <h3>Área</h3>
  <p>El área de un polígono es la medida de la región o superficie encerrada por un polígono.</p>
  <hr>
';

echo '<h2>Triángulo</h2>';
$triangulo = new Triangulo(5, 2, 6, 4);
echo '<p>Un triángulo tiene <b>' . Triangulo::$lados. '</b> lados</p>';
echo '<p>El perímetro de mi triángulo es: ' . $triangulo->perimetro() . ' el área es: ' . $triangulo->area() . '</p>';

echo '<h2>Cuadrado</h2>';
$cuadrado = new Cuadrado(5);
echo '<p>Un cuadrado tiene <b>' . Cuadrado::$lados. '</b> lados</p>';
echo '<p>El perímetro de mi cuadrado es: ' . $cuadrado->perimetro() . ' el área es: ' . $cuadrado->area() . '</p>';

Si tienes dudas en los códigos anteriores, te dejo este videotutorial donde te explico el tema a detalle.

Recuerda que si quieres saber más de PHP, en EDteam tenemos los siguientes cursos para ti:

Se despide su amigo y docente digital Jonathan MirCha, sean felices, hasta siempre, nos leemos la próxima semana... 

    ...bye ;)

Si este artículo te gustó suscríbete para recibir novedades del blog y promociones de EDteam

Ingresa tu correo electrónico para recibir nuestro boletín semanal