Usando Interfaces en php Orientado a Objetos
En este ejemplo vamos a ver el manejo de interfaces en php, las cuales serán usadas en la implementacion de una clase llamada “deportivo“, implementando la clase gasolina la cual extiende la clase Auto que a su vez cuenta con los metodos encender y apagar.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
<?php /* Este script hace uso de interfaces, y ademas ejecuta los metodos en secuencia para: llenar el tanque (con un parametro) ver el estado encender el vehiculo ver el estado usar el vehiculo (por una cantidad de km en parametro) ver el estado apagar el auto se verifica con condicionales que el combustible sea suficiente y sino el estado cambia a apagado */ interface Auto{ // metodos // metodos para encender y apagar el auto public function encender(); public function apagar(); } interface gasolina extends Auto { // metodos //metodos para vaciar y llenar el tanque public function vaciarTanque(); public function llenarTanque($cant); } class Deportivo implements gasolina{ private $estado = false; private $tanque = 0; public function estado() { if ($this->estado) { echo "el auto esta encendido y tiene ". $this->tanque. " litros de gasolina<br>"; } else { echo "el auto esta apagado<br>"; } } public function encender(){ if ($this->estado) { echo "el auto ya estaba encendido<br>"; } else { if ($this->tanque<=0) { echo "no puedes arrancar el auto, no tiene gasolina<br>"; } else { echo "Encendimos el auto<br>"; $this->estado = true; } } } public function apagar(){ if ($this->estado) { echo "apagamos el vehiculo"; $this->estado = false; } else { echo "el auto ya se encuentra apagado<br>"; //$this->estado = false; } } public function vaciarTanque(){ $this->tanque = 0; } public function llenarTanque($cant){ $this->tanque = $cant; } public function usar($km){ if ($this->estado) { $consumo = $km/3; $this->tanque = $this->tanque-$consumo; if ($this->tanque<=0) { $this->estado=false; echo "<b>el auto no tiene suficiente gasolina</b><br>"; } else { echo "Estamos usando el Auto:<br>"; } } else { echo "el auto esta apagado y ya no se puede usar <br>"; } } } $obj = new Deportivo(); // el parametro aqui pasa a ser la variable $cant que se asigna a $this->tanque el cual se resta con los $km que va recorriendo el auto $obj->llenarTanque(659); $obj->estado(); $obj->encender(); $obj->estado(); $obj->usar(2000); $obj->estado(); $obj->apagar(); ?> |
Recent Posts