Duda exámen pregunta 99
-
- Usuario registrado
- Mensajes: 262
- Registrado: 02 Dic 2009, 11:38
- Agradecido: 0
- Agradecimiento recibido: 0
Duda exámen pregunta 99
"La capacidad de un objeto de una clase dada A de aparecer y comportarse como si fuera de la clase B"
La verdad es que estoy bastante desconcertada con esta pregunta, ¿alguien sabe a qué se refiere?
Gracias. Un saludo!
La verdad es que estoy bastante desconcertada con esta pregunta, ¿alguien sabe a qué se refiere?
Gracias. Un saludo!
-
- PreparaTIC XXI
- Mensajes: 1010
- Registrado: 20 Jul 2010, 09:09
- Agradecido: 0
- Agradecimiento recibido: 0
Re: Duda exámen pregunta 99
Supon que tienes una clase Persona con métodos comer, dormir, respirar.
Y luego tienes una clase Ingeniero, que hereda de Persona, y añade los métodos diseñar, construir, dirigir, ir al paro.
Si tienes un objeto de la clase Ingeniero, puedes hacerlo construir, pero también puedes hacerlo comer, porque mal que le pese a algunos, los ingenieros somos también personas.
Eso se llama polimorfismo y es a lo que se refiere la pregunta.
Y luego tienes una clase Ingeniero, que hereda de Persona, y añade los métodos diseñar, construir, dirigir, ir al paro.
Si tienes un objeto de la clase Ingeniero, puedes hacerlo construir, pero también puedes hacerlo comer, porque mal que le pese a algunos, los ingenieros somos también personas.
Eso se llama polimorfismo y es a lo que se refiere la pregunta.
-
- Usuario registrado
- Mensajes: 14
- Registrado: 21 Oct 2008, 13:35
- Agradecido: 0
- Agradecimiento recibido: 0
Re: Duda exámen pregunta 99
Eso se llama herencia. Polimorfismo es poder utilizar un mismo método de forma diferente. Extender el comportamiento de una clase, añadiendo tú un comportamiento adicional: herencia.
- red_bit
- PreparaTIC XXII
- Mensajes: 135
- Registrado: 12 May 2008, 23:14
- Agradecido: 0
- Agradecimiento recibido: 0
Re: Duda exámen pregunta 99
Basicamente la diferencia estaría en la implentación interna del metodo cobrar de dos objetos, uno de la clase directivo y otro de la clase ingeniero. El método cobrar de una instancia de la clase ingeniero opera con aritmética imaginaria. El método cobrar de una instancia de la clase directivo opera con cálculos de coma flotante.
-
- Usuario registrado
- Mensajes: 14
- Registrado: 21 Oct 2008, 13:35
- Agradecido: 0
- Agradecimiento recibido: 0
Re: Duda exámen pregunta 99
Pues según la palntilla, efectivamente es polimorfismo...yo estaba convencido de que era herencia, no me convencía del todo lo de polimorfismo, pero me he colado...
-
- PreparaTIC XXI
- Mensajes: 1010
- Registrado: 20 Jul 2010, 09:09
- Agradecido: 0
- Agradecimiento recibido: 0
Re: Duda exámen pregunta 99
Que puedas crear la clase ingeniero derivandola de la de persona es herencia.
Que un objeto de la clase ingeniero pueda usar también métodos de la clase persona es polimorfismo.
Lo que tú dices, de que un mismo método se pueda usar de forma diferente (por ejemplo, si redefines el método dormir, porque los ingenieros no duermen igual que el resto de las personas), es sobrecarga (overloading).
Saludos.
(muy bueno lo de la aritmética imaginaria)
Que un objeto de la clase ingeniero pueda usar también métodos de la clase persona es polimorfismo.
Lo que tú dices, de que un mismo método se pueda usar de forma diferente (por ejemplo, si redefines el método dormir, porque los ingenieros no duermen igual que el resto de las personas), es sobrecarga (overloading).
Saludos.
(muy bueno lo de la aritmética imaginaria)
-
- Usuario registrado
- Mensajes: 43
- Registrado: 23 May 2008, 16:26
- Agradecido: 0
- Agradecimiento recibido: 0
Re: Duda exámen pregunta 99
Se trata de la definición de "polimorfismo" o la capacidad de una clase de adoptar comportamientos diferentes. Se suele implementar mediante sobrecarga de métodos.RACHEL escribió:"La capacidad de un objeto de una clase dada A de aparecer y comportarse como si fuera de la clase B"
La verdad es que estoy bastante desconcertada con esta pregunta, ¿alguien sabe a qué se refiere?
Gracias. Un saludo!
- red_bit
- PreparaTIC XXII
- Mensajes: 135
- Registrado: 12 May 2008, 23:14
- Agradecido: 0
- Agradecimiento recibido: 0
Re: Duda exámen pregunta 99
jjajajajajja, que lio!!!
Yo pensaba que la sutil diferencia entre sobrecarga y polimorfismo es el hecho de que un mismo método con diferente funcionamiento aparezca en la misma clase o en diferentes. Me explico:
Un ingeniero tiene dos metodos dormir, uno en vacaciones y otro en calendario lectivo. Pero los dos metodo pertenecen a la clase ingeniero. Eso es para mi la sobrecarga.
Pero ingeniero y directivo tienen diferentes implementaciones del metodo cobrar, que en efecto puede ser una implementacion particular de una superclase persona. Eso es para mi el polimorfismo.
En cualquier caso admito que siempre me lio con estos conceptos.
Yo pensaba que la sutil diferencia entre sobrecarga y polimorfismo es el hecho de que un mismo método con diferente funcionamiento aparezca en la misma clase o en diferentes. Me explico:
Un ingeniero tiene dos metodos dormir, uno en vacaciones y otro en calendario lectivo. Pero los dos metodo pertenecen a la clase ingeniero. Eso es para mi la sobrecarga.
Pero ingeniero y directivo tienen diferentes implementaciones del metodo cobrar, que en efecto puede ser una implementacion particular de una superclase persona. Eso es para mi el polimorfismo.
En cualquier caso admito que siempre me lio con estos conceptos.
Última edición por red_bit el 18 Oct 2010, 12:04, editado 1 vez en total.
-
- Usuario registrado
- Mensajes: 14
- Registrado: 21 Oct 2008, 13:35
- Agradecido: 0
- Agradecimiento recibido: 0
Re: Duda exámen pregunta 99
tienes toda la razón.cantimploro escribió:Que puedas crear la clase ingeniero derivandola de la de persona es herencia.
Que un objeto de la clase ingeniero pueda usar también métodos de la clase persona es polimorfismo.
Lo que tú dices, de que un mismo método se pueda usar de forma diferente (por ejemplo, si redefines el método dormir, porque los ingenieros no duermen igual que el resto de las personas), es sobrecarga (overloading).
Saludos.
(muy bueno lo de la aritmética imaginaria)
-
- Usuario registrado
- Mensajes: 27
- Registrado: 01 Abr 2009, 08:13
- Agradecido: 0
- Agradecimiento recibido: 0
Re: Duda exámen pregunta 99
En mi opinión esta pregunta se debería impugnar porque no tiene ningún sentido. El polimorfismo no consiste en aparecer y comportarse como de otra clase, sino en todo lo contrario: en proporcionar un comportamiento distinto a un método igual. Por cierto ¿no os suena todo esto un poco a "vamos a poner preguntas que sólo alguien previamente informado sepa responder"? ¿A qué viene lo del arseniuro de galio? A mí me suena a tongo retongo...
-
- Usuario registrado
- Mensajes: 262
- Registrado: 02 Dic 2009, 11:38
- Agradecido: 0
- Agradecimiento recibido: 0
Re: Duda exámen pregunta 99
totalmente de acuerdo, yo creo que el exámen lo han puesto para favorer a unos pocos, porque si no no tiene mucho sentido, y yo ya me creo cualquier cosa, porque como bien dices tú lo del arseniuro de galio es rarísimo. Bueno, ¿y lo de la telefonía móvil, en dónde está especificado eso?
En fin, otro año será...
Un saludo!
En fin, otro año será...
Un saludo!
-
- PreparaTIC XXI
- Mensajes: 1010
- Registrado: 20 Jul 2010, 09:09
- Agradecido: 0
- Agradecimiento recibido: 0
Re: Duda exámen pregunta 99
Hombre, yo veo preguntas dudosas, no se si impugnables, y no respondí lo del arseniuro de galio. No me extrañaría que hubiera preguntas preparadas para "informados", de hecho me extrañaría lo contrario.
Pero no creo que sea esta pregunta el caso. Yo la tenía clarísima cuando la vi (eso no quiere decir mucho, otras también las tenía claras y las he cagado), y desde luego no me la ha contando nadie.
Si buscáis definiciones de polimorfismo hay varias. La que yo he dado (en la herencia) es una de ella.
Otra posible sería si dos objetos O1 y O2, de clases C1 y C2 respectivamente, ambos implementaran el mismo método m. Con el objeto de que yo pudiera asignar uno de estos objetos a una variable y llamar al método m sin saber a priori si el objeto que voy a asignar es de la clase C1 o la clase C2 (en lenguajes como C++ no lo sabríamos hasta tiempo de ejecución, esta función se llama "late binding". Esto también es polimorfismo, sin herencia implicada.
O podemos tener polimorfismo con sobrecarga, son conceptos distintos pero se pueden usar a la vez. Yo tengo una clase abstracta "figura" que tiene un método "calcular volumen". Luego tengo subclases "esfera" y "cubo" que ambas redefinen este método cada una a su manera. Aquí tengo polimorfismo, sobrecarga y herencia todo a la vez...
Pero no creo que sea esta pregunta el caso. Yo la tenía clarísima cuando la vi (eso no quiere decir mucho, otras también las tenía claras y las he cagado), y desde luego no me la ha contando nadie.
Si buscáis definiciones de polimorfismo hay varias. La que yo he dado (en la herencia) es una de ella.
Otra posible sería si dos objetos O1 y O2, de clases C1 y C2 respectivamente, ambos implementaran el mismo método m. Con el objeto de que yo pudiera asignar uno de estos objetos a una variable y llamar al método m sin saber a priori si el objeto que voy a asignar es de la clase C1 o la clase C2 (en lenguajes como C++ no lo sabríamos hasta tiempo de ejecución, esta función se llama "late binding". Esto también es polimorfismo, sin herencia implicada.
O podemos tener polimorfismo con sobrecarga, son conceptos distintos pero se pueden usar a la vez. Yo tengo una clase abstracta "figura" que tiene un método "calcular volumen". Luego tengo subclases "esfera" y "cubo" que ambas redefinen este método cada una a su manera. Aquí tengo polimorfismo, sobrecarga y herencia todo a la vez...
-
- Usuario registrado
- Mensajes: 262
- Registrado: 02 Dic 2009, 11:38
- Agradecido: 0
- Agradecimiento recibido: 0
Re: Duda exámen pregunta 99
no, esta pregunta no lo es, en mi parecer, lo que si que creo que está bastante mal redactada. Yo he acertado pero me surgieron bastantes dudas, y eso que creía que tenía bastante claro la definición de polimorfismo, he trabajado mucho con ello, y aún así tenía dudas....
-
- Usuario registrado
- Mensajes: 27
- Registrado: 01 Abr 2009, 08:13
- Agradecido: 0
- Agradecimiento recibido: 0
Re: Duda exámen pregunta 99
Aún así, siguen siendo comportamientos distintos, no el mismo comportamiento. Sigo pensando que esa pregunta sobra. Yo no la respondía porque creía que ninguna de las respuestas era buena, y lo sigo pensando.
-
- Usuario registrado
- Mensajes: 17
- Registrado: 06 Mar 2009, 12:31
- Agradecido: 0
- Agradecimiento recibido: 0
Re: Duda exámen pregunta 99
Yo lo vi de la siguiente manera.
Toda subclase A1 es siempre instancia de una super clase A (relación de herencia) , luego A1 puede aparecer (por medio de conversión de tipos) y comportarse como A( por medio de la herencia ya que hereda su comportamiento y si no lo redefine, es el mismo) donde sea . Esto es posible luego la respuesta a) no es incorrecta.
El polimorfismo es un implementación de la herencia donde lo unico que cambia es que la clase base es abstracta y las subclases redefinen ( o implementan) el método heredado. Pero no deja de ser una herencia.
Luego la herencia es lo importante y lo que da lugar a todos esto desde mí punto de vista
Para mi esta es perfectamente impugnable.
Toda subclase A1 es siempre instancia de una super clase A (relación de herencia) , luego A1 puede aparecer (por medio de conversión de tipos) y comportarse como A( por medio de la herencia ya que hereda su comportamiento y si no lo redefine, es el mismo) donde sea . Esto es posible luego la respuesta a) no es incorrecta.
El polimorfismo es un implementación de la herencia donde lo unico que cambia es que la clase base es abstracta y las subclases redefinen ( o implementan) el método heredado. Pero no deja de ser una herencia.
Luego la herencia es lo importante y lo que da lugar a todos esto desde mí punto de vista
Para mi esta es perfectamente impugnable.