|
|
Se
denomina clase abstracta a aquella que contiene
una o más funciones virtuales puras. El nombre proviene
de que no puede existir ningún objeto de esa clase.
Si una clase derivada no redefine una función virtual
pura, la clase derivada la hereda como función
virtual pura y se convierte también en clase
abstracta. Por el contrario, aquellas clases derivadas que
redefinen todas las funciones virtuales puras de sus
clases base reciben el nombre de clases derivadas concretas,
nomenclatura únicamente utilizada para diferenciarlas de
las antes mencionadas.
Aparentemente
puede parecer que carece de sentido definir una clase de la que
no va a existir ningún objeto, pero se puede afirmar, sin
miedo a equivocarse, que la abstracción es
una herramienta imprescindible para un correcto diseño de
la Programación Orientada a Objetos.
|
|
|
|
|
Está
claro que la jerarquía que se presenta en la figura 7 no
es suficiente, porque un avión y un helicóptero, o
un patinete y una bicicleta, serían objetos de la misma clase.
Pero lo que se pretende ilustrar es la necesidad de una clase vehículo
que englobe las características comunes de todos ellos (peso,
velocidad máxima,
), aunque no exista ningún
objeto de esa clase, ya que
cualquier vehículo en el que se piense, podrá
definirse como un objeto de una clase derivada de la primera clase
base.
Habitualmente
las clases superiores de muchas jerarquías de clases son
clases abstractas y las clases que heredan de ellas
definen sus propias funciones virtuales, convirtiéndose
así en funciones concretas.
|
|
|