Herencia Y Polimorfismo
Enviado por randysk • 14 de Junio de 2014 • 1.001 Palabras (5 Páginas) • 843 Visitas
Índice:
Introducción: 3
Herencia 4
Constructores en la herencia 4
Polimorfismo 6
Sobrecarga de operadores 6
Enlace dinámico y polimorfismo 7
Conclusión: 8
Otras fuentes consultadas: 9
Introducción:
Hasta lo que hemos desarrollado de este curso se ha destacado una de la propiedades más importantes de la programación orientada a objetas la Abstracción. La cual se pone de manifiesto en la Encapsulación, que consiste en proteger los datos del mundo exterior, permitiendo el acceso a ellos a través de una interface. Las clases como ya conocemos permiten implementar modelos que ayudan al programador simular situaciones complejas del mundo real. Ahora las clases no son suficientes por si solas para soportar diseño y programación orientada a objetos, se requiere de un mecanismo para relacionar una clase con otra, este mecanismo lo conoceremos por el nombre de Herencia la cual es una de las características más importantes, después de las clases, en la programación orientada a objetos.
Herencia
La herencia permite definir clases (subclases) a partir de otra clase más genérica (superclase).
La subclase reúne todas las propiedades de la superclase, además de las suyas propias. La herencia potencia la reutilización de código, genera código más fiable y robusto y reduce el coste de mantenimiento.
estudiantes
numExpedientes
mostrarNumExpediente
Persona
Nombre
Apellidos
DNI
MostrarNombre
MostrarDNI
En Java no se permite la herencia múltiple.
Una subclase hereda todos los métodos y atributos de la superclase excepto:
• Atributos y métodos privados
• Constructores (no se heredan pero sí se ejecutan)
Constructores en la herencia
Conceptos previos: toda clase, por defecto, contiene un constructor sin parámetros y vacío.
class Esfera(){
double radio;
Esfera() {} // Este constructor existe sin necesidad de escribirlo
}
Esfera e = new Esfera();
Los constructores no se heredan.
class Esfera(){
double radio;
Esfera(double r) {
radio = r;
}
Esfera() {
radio = 1;
}
}
class Planeta extends Esfera {
int numSatelites;
Planeta(double r, int ns) {
radio = r; numSatelites = ns;
}
}
Planeta p1 = new Planeta(6378, 1); ¿Correcto / Incorrecto?
Planeta p2 = new Planeta(6378); ¿Correcto / Incorrecto?
Planeta p3 = new Planeta(); ¿Correcto / Incorrecto?
Esfera e = new Esfera(6378); ¿Correcto / Incorrecto?
Cuando creamos un objeto de una subclase, el constructor de la clase padre también se ejecuta:
class A(){
A() { System.out.println(“En A”); }
}
class B extends A {
B() { System.out.println(“En B”); }
}
class Demo {
public static void main(String args[]) {
B b = new B();
}
}
Salida por pantalla:
En A
En B
Primero se ejecuta el constructor de la superclase y luego el de la subclase.
Polimorfismo
El polimorfismo es la capacidad
...