GD3 - PHP
GD3 - PHP
GD3 - PHP
PROGRAMACIÓN EN PHP
Guía didáctica 3: Programación orientada a objetos [POO]
1
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Se espera que, con los temas abordados en la guía didáctica del módulo 3:
Programación orientada a objetos [POO], el estudiante logre la siguiente
competencia específica:
Conocer los conceptos básicos, componentes y características de la
programación orientada a objetos en PHP.
Programación
orientada a
objetos [POO]
1
Todas las ilustraciones de esta guía son autoría propia del docente y tienen como
función mostrar la aplicación y práctica del contenido que se desarrolla, por ello solo se
enumerarán.
2
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Tema 1: Programación Orientada a Objetos [POO]
Clases
Las clases son declaraciones de objetos, también se podrían definir como
abstracciones de objetos o moldes. Esto quiere decir que la definición de un objeto
es una clase. Cuando se programa un objeto y se definen sus características y
funcionalidades en realidad lo que se hace es programar una clase.
La definición básica de una clase comienza con la palabra reservada class,
seguida de un nombre de clase, y continuando con un par de llaves que encierran
las definiciones de las propiedades y métodos pertenecientes a dicha clase.
3
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustración 2.
Las clases, en PHP, son básicamente una plantilla que sirve para crear un
objeto. Si se imaginan las clases en el mundo en el que se vive, se podría decir que
la clase persona es una plantilla sobre cómo es un humano. Juan, Andrés, Evelin
y Nicol son objetos de la clase persona, ya que todos son personas.
Ilustración 3.
4
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
La clase persona contiene la definición de un ser humano, mientras que cada
ser humano es una instancia u objeto de dicha clase.
En el ejemplo de la clase persona hay varias características que se deben
tener en cuenta al momento de trabajar con clases y programación orientada a
objetos, dado que entran en juego términos cómo: atributos, métodos, objetos y
constructores. Todos a partir de una clase.
Ilustración 4.
5
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Existe una estructura fundamental para todas las clases definidas en PHP
que se debe tener en cuenta al momento de construirlas:
- Nombre: identifica la clase de forma única en nuestro proyecto, debe ser claro
y descriptivo.
- Atributos: referencia los campos y variables de la clase que permiten definir
las características de una clase.
Los atributos hacen el papel de variables en las clases, tienen las mismas
características y restricciones, pero en algunos casos cuentan con variantes y
complementos.
En el ejemplo de la clase gato, los atributos que componen la clase son:
Ilustración 5.
6
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustración 6.
Ilustración 7.
Ahora de forma rápida y saltando algunos conceptos que serán vistos más
adelante, veamos el uso de la clase gato en ejecución.
Para este ejemplo hay algunos cambios, el archivo que se llamaba clases
dentro del proyecto y del directorio POO, lo vamos a cambiar a Gato.php.
Vamos a crear un nuevo archivo dentro del directorio POO, con nombre
main.php, dado que las clases no se pueden ejecutar directamente dentro de sí, por
lo que siempre debe haber un archivo «auxiliar» y la estructura de ese archivo será
la siguiente para este caso.
7
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustraciones 8 y 9.
Getters y setters
Los setters y getters son métodos de acceso, generalmente son una interfaz
pública para cambiar atributos privados de las clases, dado que cuando se
determinan atributos privados no hay manera de acceder a ellos sin un método de
acceso:
Setters: hace referencia a la acción de establecer, sirve para asignar un valor
inicial a un atributo, pero de forma explícita, además el setter nunca retorna nada
(siempre asigna) y solo permite dar acceso público a ciertos atributos que el usuario
pueda modificar.
Ilustración 10.
8
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
El nombre suele estar compuesto anteponiendo la palabra set y el nombre
del atributo.
Contiene un parámetro que se pasa argumentado.
La palabra this ayuda a diferenciar el atributo de la clase y el parámetro, dado
que sin este se estaría operando únicamente con el parámetro, dejando a un
lado los atributos.
Ilustración 11.
9
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustraciones 12 y13.
Ilustración 14.
10
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustración 15.
11
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
De esta forma el atributo de del objeto CorreoGmail retornará el valor que
fue seteado (set) previamente.
La clase correo tendría la siguiente estructura:
- Cuatro atributos
- Cuatro métodos set.
- Cuatro métodos get.
Ilustración 19.
12
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
- La obtención de valores por medio de get.
Ilustraciones 20 y 21.
This
La pseudovariable $this sirve para hacer referencia a un método, propiedad
o atributo del objeto actual. Se utiliza principalmente cuando existe sobrecarga de
nombres. La sobrecarga de nombres se da cuando hay una variable local de un
método o constructor, o un parámetro formal de un método o constructor, con un
nombre idéntico al que está presente en la clase al momento de relacionarse.
13
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustración 22.
Ilustración 23.
14
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustraciones 24, 25 y 26.
15
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustración 27.
Ilustraciones 28 y 29.
Static
Los elementos estáticos (o miembros de clase) son aquellos que pertenecen
a la clase, en lugar de pertenecer a un objeto en particular.
Declarar propiedades o métodos de clases como estáticos los hacen
accesibles sin la necesidad de instanciar la clase. Una propiedad declarada como
static no puede ser accedida con un objeto de clase instanciado (aunque un método
estático sí lo puede hacer).
Debido a que los métodos estáticos se pueden invocar sin tener creada una
instancia del objeto, la seudovariable $this no está disponible dentro de los métodos
declarados como estáticos.
16
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustraciones 30 y 31.
Self
En PHP, self y this se utilizan para referir miembros de clase dentro del
alcance de una clase. Los miembros de la clase pueden ser variables o métodos.
Estas palabras claves de PHP difieren con el comportamiento estático de los
miembros de la clase.
Cuando queramos acceder a una constante o método estático o un atributo
desde dentro de la clase, se usa la palabra reservada: self.
17
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustraciones 32, 33 y 34.
Parámetros - Argumentos
Los parámetros o argumentos son una forma de intercambiar información con
el método. Pueden servir para introducir datos para ejecutar el método (entrada) o
para obtener o modificar datos tras su ejecución (salida).
Parámetros: uso en la declaración del método, son los valores que un método
recibe desde un objeto.
18
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustración 35.
Argumentos: uso en el paso de datos a métodos desde un objeto. Son los valores
que un objeto recibe para operar un método.
Ilustración 36.
Paso por valor. Son argumentos que contienen el valor exacto de estos.
Ilustraciones 37 y 38.
El paso por valor se caracteriza por el uso de tipos de datos clásicos que
permiten el paso de valores exactos a los métodos. Ejemplos:
- Números.
19
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
- Cadenas.
Paso por referencia. Son argumentos de tipo objeto, array, entre otros, que
no contienen los valores de estos sino su respectiva dirección en memoria.
Ilustraciones 39 y 40.
El paso por referencia se caracteriza por el uso de tipos datos por referencia
que permiten el paso de la dirección de memoria del valor original, más no la copia
del valor.
Constructores
Es un método que contiene las acciones que se realizarán por defecto al
crear un objeto, en la mayoría de los casos se inicializan los valores de los atributos
en el constructor.
20
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
No es obligatoria su creación.
Se utiliza la palabra reservada __construct.
No retorna ningún valor.
Se recomienda el uso de modificadores de accesos.
Ilustración 41.
Ilustración 42.
21
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
22
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustraciones 43 y 44.
23
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustraciones 45 y 46.
Ilustración 47.
Puesto que el constructor le asignó los valores a los atributos del presente
objeto por medio de la siguiente operación:
24
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustración 48.
Ilustración 49.
Destructores
El método destructor será llamado tan pronto como no haya otras referencias
a un objeto determinado, o en cualquier otra circunstancia de finalización.
25
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustraciones 50, 51 y 52.
26
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
El objetivo principal es liberar recursos que solicitó el objeto (conexión a la
base de datos, creación de imágenes dinámicas, etc.),
Es el último método que se ejecuta de la clase.
Se ejecuta en forma automática, es decir, no tenemos que llamarlo.
Debe llamarse __destruct.
No retorna datos.
Es menos común su uso que el constructor, ya que PHP gestiona bastante
bien la liberación de recursos en forma automática.
Métodos
Son procesos o acciones disponibles para el objeto, creados a partir de una
clase.
Un método es una abstracción de una operación que puede hacer o
realizarse con un objeto. Una clase puede declarar cualquier número de métodos
que lleven a cabo operaciones de todo tipo con los objetos.
Algunas características que se encuentran dentro de los métodos son:
Permiten reutilizar código.
Pueden o no retornar valores, los métodos que no retornan valores son
conocidos como métodos de tipo void, a diferencia de los métodos que sí
retorna y son de un tipo en específico: int, string, entre otros, más adelante
ahondaremos en este tipo de métodos.
Pueden existir N cantidades de métodos dentro de una clase.
Puede contener o no parámetros.
Un método puede contener N parámetros, aunque se recomienda no
sobrecargar los métodos.
Los métodos deben retornar un tipo de dato del mismo tipo que está diseñado
el método, es decir, un método de tipo entero debe retornar un entero.
Los nombres deben ser muy claros y descriptivos con la acción que van a
realizar.
Se recomienda el uso de los modificadores de acceso, en especial diseñar
los métodos con el modificador de acceso public.
27
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
La estructura general para implementar los métodos dentro de las clases es
la siguiente:
Modificador de acceso.
Palabra reservada function.
Nombre del método.
Parámetros.
En el siguiente ejemplo vamos a simular el funcionamiento de un carro a partir
de métodos, teniendo en cuenta el estado del carro, los pasajeros y la velocidad,
además, podremos simular algunas funciones del carro, como frenar, apagar,
encender, etc.
28
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
29
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
30
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustraciones 53, 54, 55 y 56.
31
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
32
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustraciones 57, 58, 59 y 60.
Métodos void. La utilidad de los métodos void radica en que son métodos
que no cuentan con ningún tipo de retorno.
Algunas características de este tipo de método son:
Se centran en realizar acciones que no requieren retornar un valor en
específico, también suele ser usado para mostrar mensajes.
Se caracterizan por no tener un tipo de dato asociado.
El modificador de acceso más común es public.
Puede o no recibir parámetros.
Los nombres deben ser muy claros y descriptivos con la acción que van a
realizar.
Observa algunos ejemplos de métodos void.
El método encender () cumple la función de asignar un valor al atributo
estadoCarro, de la clase carro, a partir del objeto.
33
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustraciones 61 y 62.
Ilustraciones 63 y 64.
34
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Los nombres deben ser muy claros y descriptivos con la acción que van a
realizar.
Observa algunos ejemplos de métodos de tipo.
35
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
PHP 7 añade soporte para las declaraciones de tipo de devolución. De forma
similar a las declaraciones de tipo de argumento, las declaraciones de tipo de
devolución especifican el tipo del valor que serán devuelto desde una función. Están
disponibles los mismos tipos para las declaraciones de tipo de devolución que para
las declaraciones de tipo de argumento.
Los tipos de datos que se pueden usar para los métodos y para los
argumentos son los siguientes:
- String - int - bool - float - array - Self - objeto de clase - callable
Vamos a ondear principalmente en los tipos de:
String
Int
Bool
Float
Array
Siguiendo el ejemplo de la clase casa y el método aumentarPrecio,
realicemos ahora una tipificación estricta.
Ilustración 68.
Ilustración 69.
36
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustración 70.
Ilustración 71.
Ilustración 72.
Ilustración 73.
37
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustración 74.
38
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustraciones 75, 76 y 77.
Modificadores de acceso
Los modificadores de acceso introducen el concepto de encapsulamiento. El
encapsulamiento busca controlar el acceso a los datos que conforman un objeto o
instancia; de este modo una clase, y por ende sus objetos que hacen uso de
modificadores de acceso (especialmente privados), son objetos encapsulados.
Los modificadores de acceso permiten dar un nivel de seguridad mayor
restringiendo el acceso a diferentes atributos, métodos y constructores, asegurando
que el usuario deba seguir una «ruta» especificada para acceder a la información.
Implementando el uso de los modificadores de acceso se podrá asegurar que
un valor no será modificado incorrectamente. Generalmente el acceso a los
atributos se consigue por medio de los métodos get y set, es estrictamente
necesario que los atributos de una clase sean privados.
Existen cuatro modificadores de acceso:
Public - default: la propiedad o método podrá usarse en cualquier parte del
script.
Private: la propiedad o método solo podrá usarse en la clase a la que
pertenece.
Protected: la propiedad o método se podrá usar por la clase a la que
pertenece y por sus descendientes.
39
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustración 78.
Métodos mágicos
Los métodos mágicos en PHP permiten realizar acciones en objetos cuando
suceden determinados eventos que activan dichos métodos. Estos, denominados
con doble barra baja __nombreMetodo(), determinan cómo reaccionará el objeto.
Los métodos mágicos disponibles en PHP son los siguientes:
Métodos
__construct __sleep
__destruct __call
__get __callStatic
__set __clone
__isset __invoke
__unset
Ilustración 79.
40
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
construct() y destruct(). El método mágico más utilizado en PHP es
___construct(), un método que es llamado automáticamente cuando se crea el
objeto. Permite adjuntar parámetros para construir el objeto.
Cuando creamos una nueva instancia del objeto tweet podemos pasarle
parámetros que se iniciarán en el método __construct(). No se puede llamar al
método ya que es llamado automáticamente al crear el objeto.
Al igual que podemos construir cosas cuando instanciamos un objeto,
también podemos destruirlas cuando el objeto se destruye. Si por ejemplo tenemos
una conexión a la base de datos en el objeto y queremos asegurarnos de que se
cierra al destruir el objeto, podemos hacer lo siguiente:
Ilustración 80.
Ilustraciones 81 y 82.
41
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Pero en la práctica lo normal y aconsejable es que las propiedades sean
protected o private, por lo que no podemos acceder a ellas de esa forma.
El método mágico ___get() permite poder acceder a estas propiedades:
Ilustración 83.
Ilustraciones 84 y 85.
42
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustraciones 86 y 87.
43
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustraciones 88, 89 y 90.
Ilustración 91.
Ilustración 92.
Para crear una copia del objeto, independiente uno de otro, se usa clone:
44
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustración 93.
45
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustraciones 94, 95, 96 y 97.
46
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Objetos
Los objetos son ejemplares de una clase. Cuando se crea un objeto se debe
especificar la clase a partir de la cual se creará. Esta acción de crear un objeto a
partir de una clase se llama instanciar.
47
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Los objetos tienen características fundamentales que nos permiten
conocerlos mediante la observación, identificación y el estudio posterior de su
comportamiento; estas características son:
Identidad. La identidad es la propiedad que permite diferenciar a un objeto y
distinguirse de otros. Generalmente esta propiedad es tal que da nombre al objeto.
Por ejemplo, el «verde» como un objeto concreto de una clase color; la propiedad
que da identidad única a este objeto es precisamente su «color», verde. Tanto es
así que no tiene sentido usar otro nombre para el objeto que no sea el valor de la
propiedad que lo identifica.
En programación, la identidad de todos los objetos sirve para comparar si dos
objetos son iguales o no. No es raro encontrar que en muchos lenguajes de
programación la identidad de un objeto esté determinada por la dirección de
memoria de la computadora en la que se encuentra el objeto, pero este
comportamiento puede ser variado redefiniendo la identidad del objeto a otra
propiedad.
Comportamiento. El comportamiento de un objeto está directamente
relacionado con su funcionalidad y determina las operaciones que este puede
realizar. La funcionalidad de un objeto está determinada, primariamente, por su
responsabilidad. Una de las ventajas fundamentales de la POO es la reusabilidad
del código; un objeto es más fácil de reutilizarse en tanto su responsabilidad sea
mejor definida y más concreta.
Una tarea fundamental a la hora de diseñar una aplicación informática es
definir el comportamiento que tendrán los objetos de las clases involucradas en la
aplicación, asociando la funcionalidad requerida por la aplicación a las clases
adecuadas.
Estado. El estado de un objeto se refiere al conjunto de atributos y sus
valores en un instante de tiempo dado. El comportamiento de un objeto puede
modificar el estado de este.
Para declarar un objeto de una clase específica el proceso es el siguiente:
48
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustración 101.
49
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
sus propiedades o características. Los atributos y sus valores, en un
momento dado, determinan el estado de un objeto.
- Métodos: acceden a los atributos de una manera predefinida e implementan
el comportamiento del objeto.
Los atributos y métodos de un objeto están definidos por su clase, aunque
una instancia puede poseer atributos que no fueron definidos en su clase. Algo
similar ocurre con los métodos: una instancia puede contener métodos que no estén
definidos en su clase de la misma manera que una clase puede declarar ciertos
métodos como «métodos de clase», y estos (en dependencia del lenguaje) podrán
estar o no presentes en la instancia.
En el caso de la mayoría de los objetos, los atributos solo pueden ser
accedidos a través de los métodos; de esta manera es más fácil garantizar que los
datos permanecerán siempre en un estado bien definido.
En un lenguaje en el que cada objeto es creado a partir de una clase, un
objeto es llamado una instancia de esa clase. Cada objeto pertenece a un tipo y dos
objetos que pertenezcan a la misma clase tendrán el mismo tipo de dato.
Crear una instancia de una clase es entonces referido como instanciar la
clase.
En PHP, el operador «->» es usado para referirse o «llamar» a un método
particular de un objeto.
Considere como ejemplo una clase aritmética llamada Aritmética. Esta clase
contiene métodos como «sumar», «restar», »multiplicar», «dividir», etc., que
calculan el resultado de realizar estas operaciones sobre dos números.
Un objeto de esta clase puede ser utilizado para calcular el producto de dos
números, pero primeramente sería necesario definir dicha clase y crear un objeto.
Declaración de la clase aritmética:
50
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustración 102.
Ilustración 103.
51
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustración 104.
Ilustración 105.
Herencia
La herencia es un mecanismo que permite la definición de una clase a partir
de la definición de otra ya existente. La herencia permite compartir automáticamente
métodos y datos entre clases y objetos.
Esto proporciona una de las ventajas principales de la programación
orientada a objetos: la reutilización de código previamente desarrollado, ya que
permite a una clase más específica incorporar la estructura y comportamiento de
una clase más general.
Cuando una clase B se construye a partir de otra A mediante la herencia, la
clase B hereda todos los atributos, métodos y clases internas de la clase A. Además,
la clase B puede redefinir los componentes heredados y añadir atributos, métodos
y clases internas específicas.
Para indicar que la clase B (clase descendiente, derivada, hija o subclase)
hereda de la clase A (clase ascendiente, heredada, padre, base o superclase) se
52
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
emplea la palabra reservada extends en la cabecera de la declaración de la clase
descendiente. La sintaxis es la siguiente:
Ilustración 106.
Ilustración 107.
53
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Estructura de la clase autobús:
Ilustración 108.
Ilustración 109.
54
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustración 110, 111, 112 y 113.
55
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Por medio de la clase padre no hay necesidad de crear métodos y atributos
independientes en cada clase, dado que la herencia permite englobar aquellas
características que se comparten en cuanto a la estructura y simplificarlas para
ahorrar código posteriormente.
PHP permite múltiples niveles de herencia, pero no la herencia múltiple, es
decir, una clase solo puede heredar directamente de una clase ascendiente. Por
otro lado, una clase puede ser ascendiente de tantas clases descendiente como se
desee (un único padre, multitud de hijos). En la siguiente figura se muestra
gráficamente un ejemplo de jerarquía entre diferentes clases relacionadas mediante
la herencia.
Ilustración 114.
56
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
57
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustraciones 115, 116, 117 y 118.
58
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustraciones 119, 120 y 121.
Parent
Puede encontrarse escribiendo código que se refiera a variables y funciones
en clases base (padres). En lugar de usar el nombre literal de la clase base en su
código, debe usar la palabra reservada parent, que se refiere al nombre de su clase
base como se indica en la declaración extendida de su clase. Al hacer esto, evita
usar el nombre de su clase base en más de un lugar. Si su árbol de herencia cambia
durante la implementación, el cambio se realiza fácilmente al cambiar la declaración
extendida de su clase.
De forma más clara, parent es una representación de una clase padre en
herencia, que, por la funcionalidad de heredar, permite realizar llamados a métodos
o variables de la clase padre sin usar el nombre la misma, de la siguiente forma:
Ilustración 122.
59
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
En esta instrucción se realiza un llamado al constructor de la clase padre,
pero si no se usase parent:
Ilustración 123.
60
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustración 124.
Ilustración 125.
Ilustración 126.
61
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustración 127.
Final
62
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
PHP introduce la nueva palabra clave final, que impide que las clases hijas
sobrescriban un método, antecediendo su definición con final. Si la propia clase se
define como final, entonces no se podrá heredar de ella.
63
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustraciones 130, 131, 132 y 133.
Clases abstractas
En PHP se dice que son clases abstractas aquellas clases base
(superclases) de las que no se permite la creación de objetos. Para ello, se utiliza
la palabra clave abstract.
En una clase abstracta es posible definir métodos abstractos, los cuales se
caracterizan por el hecho de que no pueden ser implementados en la clase base.
De ellos, solo se escribe su signatura en la superclase, y su funcionalidad —
polimórfica— tiene que indicarse en las clases derivadas (subclases).
64
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustración 134.
65
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustración 135.
Ilustración 136.
66
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustraciones 137, 138, 139 y 140.
Interfaces
Las interfaces de objetos permiten crear código con el cual especificar qué
métodos deben ser implementados por una clase, sin tener que definir cómo estos
métodos son manipulados.
Las interfaces se definen de la misma manera que una clase, aunque
reemplazando la palabra reservada class por la palabra reservada interface, y sin
que ninguno de sus métodos tenga su contenido definido.
67
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Todos los métodos declarados en una interfaz deben ser públicos, ya que
esta es la naturaleza de una interfaz.
Ilustración 141.
68
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustraciones 142, 143 y 144.
69
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustraciones 145 y 146.
70
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
71
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Ilustraciones 147, 148, 149, 150 y 151.
72
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Lázaro, D. (2018). Métodos mágicos en PHP. https://diego.com.es/metodos-
magicos-en-php
73
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP
Esta guía fue elaborada para ser utilizada con fines didácticos como
material de consulta de los participantes en el diplomado virtual en
PROGRAMACIÓN EN PHP del Politécnico de Colombia, y solo podrá
ser reproducida con esos fines. Por lo tanto, se agradece a los usuarios
referirla en los escritos donde se utilice la información que aquí se
presenta.
GUÍA DIDÁCTICA 3
M2-DV59-GU03
MÓDULO 3: PROGRAMACIÓN ORIENTADA A OBJETOS [POO]
74
DIPLOMADO VIRTUAL EN PROGRAMACIÓN EN PHP