Omar tiene razón: Access y Assign conviene crearlos juntos y simplemente son usados por quienes lo necesiten.
Saludos.- El 1 de enero de 2015, 19:58, Omar Bellio <[email protected]> escribió: > 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. > > > > >
