<?php require_once "Padre.php"; /** * Uso de Herencia Simple * */ class Hija extends Padre { public function __construct() { parent::__construct("Capa8tv", "*****@*****.**"); } } /** * generamos una instancia de la clase Hija * */ $h = new Hija(); echo $h->getNombre(); echo "<br />"; $h->setNombre("Pedro Lemebel"); echo $h->getNombre();
<?php class Prueba { public static function getNew() { return new static(); } } class Hija extends Prueba { } $obj1 = new Prueba(); $obj2 = new $obj1(); var_dump($obj1 !== $obj2); $obj3 = Prueba::getNew(); var_dump($obj3 instanceof Prueba); $obj4 = Hija::getNew(); var_dump($obj4 instanceof Hija);
<?php require_once "Padre.php"; /** * Uso de Colaboración de Objetos * */ class Hija { private $padre; public function __construct() { $this->padre = new Padre("Capa8tv", "*****@*****.**"); } public function retornaNombre() { return $this->padre->getNombre(); } } /** * generamos una instancia de la clase Hija * */ $h = new Hija(); echo $h->retornaNombre();
<?php /** * declarar una clase como abstracta * esta clase no se puede instanciar. Sólo puede ser usar a través de herencia * */ abstract class Abstracta { private $nombre; public function __construct($nombre) { $this->nombre = $nombre; } public function getNombre() { return $this->nombre; } } //#################################### class Hija extends Abstracta { public function __construct($nombre) { parent::__construct($nombre); } } //#################################### $a = new Hija("Pedro alla"); echo $a->getNombre();