social

Páginas: 10 (2439 palabras) Publicado: 17 de octubre de 2013
Conceptos sobre polimorfismo y programación orientada a objetos
El polimorfismo, en programación orientada a objetos, se refiere a la posibilidad de acceder a un variado rango de funciones distintas a través del mismo interfaz. O sea, un mismo identificador puede tener distintas formas (distintos cuerpos de función, distintos comportamientos) dependiendo del contexto en el que se halle. Elpolimorfismo se puede establecer mediante sobrecarga, sobre-escritura y enlace dinámico.
Sobrecarga
Este término se refiere al uso del mismo identificador u operador en distintos contextos y con distintos significados.
Si para cada funcionalidad necesitada fuese necesario escribir un método, el código resultante sería inmanejable. Supongamos que los desarrolladores de Java hubiesen creado un métodopara escribir en pantalla una cadena de texto, otro diferente para escribir un entero, otro para un doble, y así para todas las combinaciones posibles, seria casi imposible conocer dichos métodos en totalidad. En cambio, con “System.out.print()” o “System.out.println()” podemos escribir cualquier mensaje en pantalla.
Este tipo de codificación nos es permitido gracias a la sobrecarga, la cual seaplica a métodos y constructores.
La sobrecarga de métodos hace que un mismo nombre pueda representar distintos métodos con distinto tipo y número de parámetros, manejados dentro de la misma clase. En el ámbito de la POO, la sobrecarga de métodos se refiere a la posibilidad de tener dos o más métodos con el mismo nombre pero distinta funcionalidad. Es decir, dos o más métodos con el mismo nombrerealizan acciones diferentes y el compilador usará una u otra dependiendo de los parámetros usados. Esto también se aplica a los constructores (de hecho, es la aplicación más habitual de la sobrecarga).
Podemos diferenciar varios métodos sobrecargados a través de sus parámetros, ya sea por la cantidad, el tipo o el orden de los mismos. Veamos un ejemplo:
public class Articulo {

private floatprecio;

public void setPrecio() {
precio = 3.50;
}
public void setPrecio(float nuevoPrecio) {
precio = nuevoPrecio;
}
public void setPrecio(float costo, int porcentajeGanancia) {
precio = costo + (costo * porcentajeGanancia);
}
}
Sobreescritura
La sobreescritura se aplica a los métodos y está directamente relacionada a la herencia; se refiere a la redefinición de losmétodos de la clase base en las subclases. Por ejemplo, en la relación de herencia del ejemplo de las figuras aunque la clase base “Figura” tiene los métodos “calcularArea” y “calcularPerimetro”, las subclases “Circulo”, “Cuadrado”, “Triangulo” y “Rectangulo” redefinen estos métodos ya que el calculo del área y el perímetro de cada uno de ellos es diferente.
class Figura {

protected doublearea;
protected double perimetro;

public Figura() {
this.area=0;
this.perimetro=0;
}
public double getArea() {
return area;
}
public double getPerimetro() {
return perimetro;
}
public void calcularArea(){}
public void calcularPerimetro(){}
}

public class Circulo extends Figura {

private doubleradio;

public Circulo() {
super();
}
public double getRadio() {
return radio;
}
public void setRadio(double radio) {
this.radio = radio;
}
public void calcularArea() {
this.area = Math.PI*Math.pow(this.radio,2.0);
}
public void calcularPerimetro() {
this.perimetro = 2*Math.PI*this.radio;
}
}Enlace dinámico
Esto permite invocar operaciones en objetos obviando el tipo actual de éstos hasta el momento de ejecutar el código. O sea, nos permite definir elementos como un tipo e instanciarlos como un tipo heredado. Pero ¿qué utilidad tiene obviar el tipo de un objeto para luego tomar esta decisión?.
Gracias a que en java la definición de los tipos de objetos se puede producir por...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Lo Social y Lo No Social
  • Sociales
  • Social
  • Sociales
  • Social
  • Social
  • Sociales
  • Sociales

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS