Curso de PHP XIV : Solución ejercicio de herencia + Clases Abstractas + Poliformismo

Curso de PHP XIV : Solución ejercicio de herencia + Clases Abstractas + Poliformismo

Jalths

Otro miércoles mas estamos aquí preparados para jugar un poco con PHP.

Hoy vamos a solucionar el ejercicio propuesto de herencia, en el que planteábamos cómo hacer el inventario de una tienda de teléfonos móviles, es decir los teléfonos móviles en sí.

¿Te has perdido alguna entrega? Aquí tenemos el recopilatorio de Curso de PHP.

A continuación tenéis la entrega de hoy.

Para esta solución, hemos creado una clase teléfono_movil y hemos heredado un clase teléfono(Xperia Arc) de ella.

En la primera clase la hemos instanciado como un HTC Desire HD

En la clase heredada hemos modificado el constructor para que los parámetros marca y modelo sean asignados como Xperia Arc. Posteriormente con la clase instanciada hemos usado métodos de la clase base para que veáis que no necesitamos definirlos de nuevo.


Salida:

CLASES ABSTRACTAS

En muchas ocasiones nos veremos en situaciones en las que necesitamos programar un serie de clases pero no podemos dar a algunos o a todos los métodos una definición todavía.

Cuando nos vemos en esta situación, lo más usual es recurrir a las clases abstractas.

Las clases abstractas son un tipo de clases que no se instanciarán, simplemente sirven como una plantilla para crear otras clases a partir de la herencia.

Lo peculiar de estas clases es que permiten definir métodos abstractos, que para entendernos son métodos que solo están definidos , es decir no tienen cuerpo solo su definición. Podríamos decir que el método no hace nada hasta que es sobrescrito en una situación de herencia aunque no sea realmente cierto.

Para definir una clase abstracta deberemos anteponer la palabra reservada abstract antes de la declaración de la clase.

Abstract class mi_clase_abstracta {

}

Para definir métodos abstractos debemos hacer exactamente lo mismo pero esta vez con la declaración del método.

Abstract class mi_clase_abstracta {

#MÉTODOS

abstract function mi_metodo_abstracto();

}

Ejemplo de clase abstracta sencilla:

POLIMORFISMO

Es hora de hablar del polimorfismo, vamos con ello.

El polimorfismo es una característica que tienen todos lo lenguajes, o al menos deberían tenerlo. El polimorfismo consiste en que dos clases diferentes, generalmente descendientes (que heredan de otra), tienen métodos iguales pero que en cada clase realizan acciones diferentes.

Bien pues hasta aquí el volumen de hoy, se que se nos hace corto a todos pero , no queremos empezar con visibilidad por ahora ya que es un tema que es mejor explicarlo por separado cuando todo esto ya esté muy asentado.

En el próximo volumen daremos visibilidad y si nos da tiempo algo más. Seguro que algunos de vosotros ya habréis investigado y os habréis dado cuenta de que estamos usando para definir atributos en las clases var y eso esta obsoleto (Deprecated), es de PHP 4, si es así nos habéis pillado, pero en realidad estaba todo preparado, en el volumen siguiente veremos como deshacernos del var usando palabras reservadas para la visibilidad.

Os esperamos en el próximo volumen, nos vamos acercando a lo interesante.

¡Sé el primero en comentar!