![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Novato, ayuda con polimorfismo por favor
Hola, es mi primer mensaje en este foro, lei hace poco que habia un articulo referente al poliformismo que se llamaba "Historias Polimórficas" de JMR, pero no logro encontrarlo en la sección articulos. Si me pudieran decir donde ubicarlo se los agradecería mucho.
Por otro lado, tengo una problema acerca de este tema, es mas bien un trabajo q me han dejado pero no le encuentro la lógica. El enunciado es el siguiente: Se desea almacenar la información de personas en tres tablas (mujeres, hombres y niños) conteniendo los nombres y edades.Se supone que las tres tablas que haria cada una sería para hombres, mujeres y niños y a su vez cada una tendría 2 campos (nombre y edad) Pero lo que no entiendo bien es a que se refiere cuando dice CADA PAR ? Si alguien me pudiera ayudar se lo agradecería mucho, y disculpen si es que es muy tonta la pregunta, pero en verdad la necesito. Saludos. |
#2
|
||||
|
||||
Hacer tres tablas es una perdida de esfuerzo. No hay datos diferenciadores entre Hombre, Mujer, Niño y lo unico que divide es el tipo de persona. Asi que con 1 sola tabla sale derecho pa' pintura.
La pregunta es un poco extraña... El par es el nombre y el tipo, pero entonces se asume que es posible que existan dos personas del mismo nombre pero no dos personas con el mismo nombre y tipo?... En fin... La Jerarquia es muy simple: TPersona THombre TMujer TNiño y TPersona.TipoPersona = Tipo junto a un (TPersona.ObtenerPersona as Tipo) haria el trabajo, junto a un CASE dentro de ObtenerPersona..
__________________
El malabarista. |
#3
|
||||
|
||||
hey gracias por el dato mamcx.
![]() |
#4
|
||||
|
||||
Pero, ¿y dónde queda el polimorfismo?
La verdad es que la pregunta es ciertamente rara, vamos, como que el profesor no pensó mucho en el ejercicio. Pero si se trata de usar polimorfismo pues el tener una propiedad TipoPersona en la clase base que es tratada mediante un case es más bien antipolimórfico (si vale el témino) y hace innecesarias las clases descendientes. Si el objetivo es el polimorfismo creo que haría algo así:
Cada clase descendiente implementa el método Buscar consultando la tabla apropiada. ¿En dónde entra el polimorfismo? Pues si tienes un objeto Persona, sin importar is es THombre, TMujer o TNiño, su método Buscar te dará la edad y demás datos correspondientes. Es decir, en la llamada Persona.Buscar el polimorfismo es el que se encarga de buscar en la tabla apropiada en lugar de una sentencia case . // Saludos |
#5
|
||||
|
||||
pues ciertamante, la pregunta es bastante rara, como q no se entiende, oye pero gracias, he estado rompiendome la cabeza de como meterle el polimorfismo al problema, pero justo has dado en el clavo, usando la anulacion puedo usar metodo del padre para los hijos. Voy a seguir avanzando y en caso tenga dudas voy a seguir posteando, desde ya muchas gracias por vuestra colabaracion.
![]() |
![]() |
|
|
![]() |
|