A ver si entendí bien: Cuando vos definís una clase con una propiedad, todo eso hereda hacia abajo, Empleado hereda de Persona, si vos ponés un método en Empleado, Persona no lo va a ver. Normalmente cuando pasa eso, se pone una interfaz (creo que se llama así) en la clase madre, es decir, definís el método y no le ponés código, queda abstracto para especializar en las subclases. De ese modo, el método siempre está, aunque no haga nada.
Resumiendo para tu ejemplo: el método _Access tiene que estar en la clase madre, para que no te pase eso. Saludos. De: [email protected] [mailto:[email protected]] En nombre de Jose Paez Enviado el: miércoles, 31 de diciembre de 2014 07:59 p.m. Para: GUFA List Member Asunto: [GUFA] _Access y _Assign Hola Juan Yo he utilizado bastante estos métodos en un framework que desarrolle hace mucho tiempo. Tendrás un ejemplo que puedas pasarnos (.prg o .vcx) para analizarlo. Saludos José Paez > Date: Wed, 31 Dec 2014 10:32:05 -0300 > From: [email protected] > To: [email protected] > Subject: [GUFA] _Access y _Assign > > Descubrimos un problema con los metodos _Access y _Assign en herencia. > En una clase hay una propiedad y esta tiene definido el metodo _assign. > Otra clase hereda de esta y define para esa propiedad el metodo _access. > Pongo como ejemplo una clase Persona y otra Empleado que hereda de > Person. Se crea un objeto de cada clase. Si se crea primer la clase base > (persona) y despues la subclase (empleado) se puede acceder a la > propiedad de la primera (ejemplo Persona.Apellido). Si se crea primero > la subcase (empleado) y despues la base (persona) y se quiere acceder a > la propiedad que tiene el metodo _access en la subclase da error porque > no encuenta el metodo _access (al intentar Persona.Apellido da error > porque no encuentra apellido_access). Por lo que estuve investigando el > tema es que cuando crea un objeto levanta la estructura jerarquica de la > clase (a la que se puede acceder con la funcion amembers() consultando > por el objeto o cada clase en la jerarquia) y hace referencia a cada > propiedad si tiene algunos de los metodos (_access o _assign). No > encontre documentación que lo mencione, solo paso y lo confirme con un > pequeño ejemplo como el que describi (una clase persona con propiedades > apellido y nombre y una funcion apellido_assign y otra clase empleado > que hereda de persona con una propiedad mas cuil y el metodo > apellido_access). En la documentacion de microsoft menciona > explicitamente que se puede usar indistintamente _access o _assign, pero > nada habla de la herencia ¿alguien sabe algo de esto? Por lo que vimos > si se usa _access o _assign hay que crearlas en la misma definicion > donde esta la propiedad a menos que sea una clase abstracta y no se cree > ninguna instancia de la misma. No se si interesa pero para nosotros es > importante como norma de desarrollo. > Muchas gracias. > >
