Sig: Práctica: Herencia
Sup: Herencia
Ant: Ejercicio: SUPER
Err: Si hallas una errata ...
Métodos Abstractos
Un método abstracto es uno que, mas que proveer un servicio representa un servicio o categoría.
La idea es que al definir una clase base abstracta se indica un conjunto de métodos
que deberían estar definidos en todas las clases que heredan de la clase base abstracta.
Es como una declaración de interfase que indica la necesidad de definir su funcionalidad
en las clases descendientes, pero que no se define en la clase base.
Para conseguir este efecto, lo normal en Perl es que nos aseguremos que nuestro
método abstracto produce una excepción con el mensaje de error adecuado.
Cuando el número de métodos abstractos es grande puede suponer un ahorro
utilizar un método genérico como este:
package Abstract;
sub ABSTRACT {
my $self = shift;
my ($file, $line, $method) = (caller(1))[1..3];
die("call to abstract method ${method} at $file, line $line\n");
}
1;
Obsérve el uso de la función caller
introducida en la sección 1.9.11
para determinar la localización exacta de la llamada.
Sig: Práctica: Herencia
Sup: Herencia
Ant: Ejercicio: SUPER
Err: Si hallas una errata ...
Casiano Rodríguez León
2006-02-21