‒ Métodos Abstractos.

La abstracción es una característica de la programación orientada a objetos, que nos permite crear clases, en donde se considera lo más relevante y se ignora lo irrelevante.

Para la implementación de clases abstractas, free pascal nos ofrece el uso de métodos abstractos.

Un método abstracto es un método, que no tiene implementación y el código correspondiente se implementa, en la clase descendiente. Se conoce como una clase abstracta, aquella clase que tiene métodos abstractos, una clase puede tener métodos abstractos y métodos no abstractos. Generalmente no se deben crear objetos de las clases que tienen métodos abstractos, y sólo se deben crear objetos de las clases descendientes. No obstante el compilador permite crear objetos de clases abstractas, pero debemos tener presente que no se podrán usar los métodos abstractos ya que estos no están implementados. Una clase abstracta es como una clase normal cualquiera, es decir puede tener también atributos y propiedades, constructores y destructores, que luego se usarán en la clase descendiente. Siguiendo con el ejemplo de los números complejos, se ha creado la siguiente clase TNumero:


Descargar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Código fuente 14: Unidad Numeros.pp que contiene la clase TNumero.
Descargar

En la clase TNumero se implementa con métodos abstractos, las operaciones matemáticas que se pueden hacer con un número en general, como son la adición, la sustracción, la adición, la multiplicación, etc. Los métodos abstractos deben tener al final dos palabras reservadas virtual y abstract. Esto nos dice que todos los métodos abstractos deben ser siempre virtuales. Los métodos abstractos luego se implementan en las clases descendientes, que en este caso serán TComplejo y TReal. Los atributos ParteReal y ParteImag, se encuentran en la parte privada de la clase TNumero, estos atributos no son accesibles por las clases TComplejo y TReal. Y la única manera de acceder a ellos es a través de sus propiedades. Debido a eso el método PonCad, de la clase TComplejo necesita ser cambiado, para ello se necesitará de una variable nueva auxD, que se usará en el parámetro por referencia que usa el procedimiento Val, el valor devuelto en auxD, será después asignado a las propiedades Real y Imag. Se usa la variable auxD, porque no se pueden usar las propiedades con el parámetro por referencia del procedimiento Val. Entonces el nuevo método PonCad será el siguiente:


Descargar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Código fuente 15: Nuevo método PonCad de la clase TComplejos.
Descargar

Las unidades de este ejemplo junto con un programa de ejemplo, lo pueden descargar del siguiente enlace: 11-03-Ejemplo.zip