Polimorfismo Y Ligaduras
Ministerio del Poder Popular para la Defensa.
Universidad Nacional Experimental Politécnica
De la Fuerza Armada Núcleo Anzoátegui
Profesor: Bachilleres:
José González Yorman LópezC.I: 20.341.907
Introducción
En orientación a objetos la herencia es el mecanismo fundamental para implementar la reutilización y extensibilidad del software. A través de ella los diseñadores pueden construir nuevas clases partiendo de una jerarquía de clases ya existente (comprobadas y verificadas) evitando con ello el rediseño, la remodificación y verificación de la parteya implementada. La herencia facilita la creación de objetos a partir de otros ya existentes, obteniendo características (métodos y atributos) similares a los ya existentes.
La herencia es uno de los mecanismos de la programación orientada a objetos, por medio del cual una clase se deriva de otras, a la clase ya existente se le llama superclase, clase base o clase padre y a la nueva clase se lellama subclase, clase derivada o clase hija.
Polimorfismo
El polimorfismo es un concepto de la programación orientada a objetos que nos permite programar en forma general, en lugar de hacerlo en forma específica. En general nos sirve para programar objetos con características comunes y que todos estos compartan la misma superclase en una jerarquía de clases, como si todas fueran objetosde la superclase. Esto nos simplifica la programación.
Existen varias formas de polimorfismo:
Cuando invocamos el mismo nombre de método sobre instancias de distinta clase.
Cuando creamos múltiples constructores.
Cuando vía subtipo asignamos una instancia de una subclase a una referencia a la clase base.
Para poner en práctica se hará un ejemplo bastante sencillo:
public class Coche {private String propietario;
private String matricula;
private double cuentaKilometros ;
public void vender (String elPropietario) {
propietario = elPropietario;
}
public void matricular(String laMatricula) {
matricula = laMatricula;
}
public void recorrer(double kms ) {
cuentaKilometros = cuentaKilometros + kms;
}
public void printInfo() {
String tmp =
"Propietario: "+propietario+";"+"Matricula: "+matricula+";"+
"Kms recorridos: "+cuentaKilometros+";" ;
System.out.println(tmp) ;
}
}
public class CocheConGPS extends Coche {
private double latitud = 0;
private double longitud = 0;
public void cambiarCoordenadas (double deltaLatitud, double deltaLongitud) {
latitud = latitud+deltaLatitud;
longitud = longitud+deltaLongitud;
}
public double latitud() {
returnlatitud;
}
public double longitud() {
return longitud;
}
public void printInfoPosicion() {
String tmp = "Latitud: " + latitud + "; Longitud: " + longitud;
System.out.println(tmp);
}
}
/
public class Taxi extends Coche {
/* heredado de Coche */
public void recorrer(double kms) {
System.out.println("Taxi@: inicia carrera" );
printInfo();
/ * metodo "recorrer"heredado de Coche */super.recorrer(kms);
System.out.println("Taxi@: fin de carrera" );
}
}
Ligadura
Es la acción de asociar tipo, referencia o valor a un nombre de variable.
• Ligadura en lenguajes fuertemente tipados (variables estáticas y automáticas)
La asociación de un tipo a una variable se conoce como ligadura estática, anticipada ó en tiempo de compilación.
(N + T)
asociación de una referencia a unavariable se conoce como ligadura intermedia ó en tiempo de creación.
((N + T) + R))
L a asociación de un valor a una variable se conoce como ligadura dinámica ó en tiempo de ejecución.
(((N + T) + R) + V)
Clase Interfaz
Es una colección de métodos abstractos y propiedades. En las interfaces se especifica qué se debe hacer pero no su implementación. Serán las clases que implementen estas interfaces...
Regístrate para leer el documento completo.