Herencia

La herencia es uno de los temas más fascinantes en la programación orientada a objetos. Permite escribir órdenes una sola vez, y usarlas en muchas partes. Por ejemplo, en el diseño de las pantallas de edición, normalmente todas las pantallas estarán basadas en una pantalla base. Ciertas órdenes que se requieren en todas las pantallas (ejemplos: guardar un registro, anular cambios a un registro, ir al siguiente registro) se las escribe en la pantalla base, de la forma más genérica posible - e inmediatamente estarán disponibles para todas las pantallas "derivadas". Igualmente, cualquier cambio que se hace en la pantalla base (digamos que hemos detectado un error, y queremos corregirlo) inmediatamente estarán disponibles en todas las pantallas.

Una forma ligeramente distinta de usar la herencia es creando objetos "genéricos" que se insertarán en las pantallas. Por ejemplo, podemos definir un objeto para la edición de montos monterarios, con algunas propiedades como InputMask (equivalente al Picture en FoxPro) con valores apropiados (por ejemplo, InputMask = "###,###.##"). Nuevamente, cualquier cambio hecho en la clase base se reflejará inmediatamente en todas las pantallas que usan un objeto basado en nuestra clase.

Romper la herencia

Tomemos como ejemplo una pantalla, derivada de nuestra pantalla genérica. Cuando escribimos órdenes en un método de la pantalla derivada (por ejemplo, Init()), inicialmente ya no se ejecutan las órdenes de la pantalla "padre". La manera más fácil de agregar órdenes - y a la vez asegurarse que se ejecuten las órdenes heredados, o sea, que no se rompa la herencia - es dando la orden DoDefault().

 

Volver a: Visual FoxPro | Página Principal de Hilmar Zonneveld