Java - Polimorfismo es lo mismo que sobrescritura ?

 
Vista:
sin imagen de perfil

Polimorfismo es lo mismo que sobrescritura ?

Publicado por Cecilia (24 intervenciones) el 17/12/2006 23:36:57
Al hablar de polimorfismo lo que hacemos es sobrescribir un método?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Polimorfismo es lo mismo que sobrescritura ?

Publicado por VigilanteIBM (2 intervenciones) el 18/12/2006 01:03:45
Se denomina polimorfismo a la capacidad que tienen objetos de diferentes clases de responder al mismo mensaje. Esto significa que puede haber muchos mensajes con el mismo nombre, en diferentes clases. Cada Clase responde al mensaje con su código propio (o método).

Espero tu respuesta y que la mia te sirva de ayuda.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Polimorfismo es lo mismo que sobrescritura ?

Publicado por Tom (1559 intervenciones) el 18/12/2006 07:22:23
No.
Se habla de polimorfismo cuando el mismo método puede ser invocado con parámetros de distinto tipo o retornar un valor de distinto tipo. P.Ej:

class A {
int valor;
int sumar(int nuevo) { return valor + nuevo; }
double sumar(double nuevo) { return (double)valor + nuevo; }
}

Se dice que sobreescribes un método cuando cambias el código de un método ya existente (por ejemplo, una clase "hija" redefine un método de su clase "padre"). P.Ej:

class B : public A {
double valorAcumulado;
double sumar(double nuevo) { valorAcumulado += nuevo; return valorAcumulado };
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Polimorfismo es lo mismo que sobrescritura ?

Publicado por chuidiang (950 intervenciones) el 18/12/2006 21:58:23
Hola:

Sobrecarga de metodos es poner el mismo nombre de metodo, pero con parametros distintos (distinto tipo o distinto numero de parámetros o ambas cosas a la vez)

Sobreescribir un metodo es cuando una clase hija define exactamente el mismo metodo que la clase padre.

Polimorfismo es cuando se mete una clase hija en un sitio que admite una clase padre y llamando a un metodo de la clase padre, en realidad se ejecuta el de la clase hija. Por ejemplo, imagina ClasePadre y una ClaseHija que hereda de ella. Ambas tienen metodo() (La ClaseHija lo sobreescribe). Si haces esto

ClasePadre a = new ClaseHija();

a.metodo();

se ejecuta el metodo() de ClaseHija, a pesar de que el tipo de a es ClasePadre. Esto es el polimorfismo, ejecutar un metodo() de ClaseHija cuando tu codigo "piensa" que tiene una ClasePadre.

Esto último, como comenta vigilanteIBM, permite que un codigo que trata con ClasePadre pueda ser usado sin modificaciones para varias ClaseHIja distintas.

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar