Apúntate...


Consultas, desarrollo de programas y petición de presupuestos:

sábado, 2 de noviembre de 2013

La Herencia entre clases: inherits

¿que es la herencia?
 La herencia facilita la creación de objetos a partir de otros ya existentes e implica que una subclase obtiene todo el comportamiento (métodos) y eventualmente los atributos (variables) de su superclase.
La clase de la que se hereda se suele denominar clase base, clase padre, superclase, clase ancestro.
La clase derivada de la herencia, se le puede añadir sus propios métodos o cambiar los definidos en la clase superclase, para modificar su comportamiento.

Es a destacar, el hecho de que cuando se usa como parámetro en una función una clase padre, dicha función admitirá también como objetos válidos, los objetos heredados de la clase padre.

Fig 1: Esquema del uso de herencia simple con clase padre: Persona,
y clases heredadas: administrativo, docente y personal limpieza

Ref: http://es.wikipedia.org/wiki/Herencia_(inform%C3%A1tica)

¿como se consigue la herencia en Gambas3?
Simplemente al iniciar la clase, se usa esta orden:


  • INHERITS ParentClass


Donde ParentClass es la clase de la que queremos heredar los métodos y propiedades.

En gambas3 solo existe la "herencia Simple", la herencia múltiple hay que simularla mediante composición de clases.


Ejemplo:
Hacer un programa que registe los Docentes, Administrativos y personal de limpieza. Con los métodos y atributos de la figura 1.
Haremos la siguiente estructura de clases:

Declararemos la clase Persona:
->
En la función registrar (número de linea 51), se dejan varios parámetros en forma de opcional (se pueden poner o no) y tipo variant (que admitirían cualquier tipo de datos), que nos servirán para usarlo en las clases heredadas.

Declaremos las clases que la heredan:
Administrativos
->
Docente:
->
A destacar la linea 43 donde se hace uso de Me.Sueldo() para calcularlo segun la funcion que esta definida en la clase (lineas 57 y sucesivas). Sin embargo en la linea 40, se hace uso de Super.Nombre para llamar a la clase padre.

PersonalLimpieza
->
Y la clase Main: (inicio del programa)
->
Aqui podemos destacar el uso de la funcion mostrar(), que recibe una clase persona (o cualquiera que herede de ella) y trabaja con los métodos que tenga sin ningún problema. Por ejemplo en este caso se le envia una clase PersonalLimpieza y nos muestra sus datos


Codigo completo: enlace a box.com

No hay comentarios:

Publicar un comentario

A falta de donativos... un poco de publicidad