next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
Sig: Práctica: Ancestros de un Sup: Herencia Ant: Herencia Err: Si hallas una errata ...


La clase UNIVERSAL

Como vemos existe una clase especial denominada clase UNIVERSAL de la cual implícitamente hereda toda clase. Esta clase provee los métodos isa, can y VERSION (véase la sección 6.5). Es posible añadir métodos o atributos a UNIVERSAL.

El método isa nos permite saber si una clase hereda de otra:

if ($a->isa("B")) { # El objeto a es de la clase B ... }
El método isa memoriza los valores que retorna, de manera que una vez que conoce un par no necesita realizar una segunda búsqueda. Eso significa que una modificación dinámica del vector @ISA puede dar lugar a que el método retorne valores obsoletos.

Hay ocasiones en las que lo que nos preocupa no es tanto a que clase pertenece un objeto como saber si dispone de un cierto método. El método can devuelve verdadero si el objeto puede llamar al método solicitado:

if ($a->can("display_object")) { # el objeto dispone del método ... }

De hecho, el valor que devuelve can es una referencia al método por el que se pregunta.


next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
Sig: Práctica: Ancestros de un Sup: Herencia Ant: Herencia Err: Si hallas una errata ...
Casiano Rodríguez León
2006-02-21