Polimorfismo
Agenda
- Ejemplo UML
- Palabra reservada super
- Ejemplo
- Polimorfismo
- Definición
- Ejemplo
- UML - Ejemplo completo para practicar
UML
Animal
nombre: String
Animal()
Animal(String nombre)
comer(): void
Perro
hambre: int
Perro()
Perro(String nombre, inthambre)
comer(): void
Superclase
Subclase
Agenda
- Ejemplo UML
- Palabra reservada super
- Ejemplo
- Polimorfismo
- Definición
- Ejemplo
- UML - Ejemplo completo para practicar
Palabra reservada: super
- Se utiliza para invocar métodos de la superclase.
super.metodo();
- En el caso de los constructores, debe ser la primer línea en el constructor de la subclase.
super();
ó
super(lista de parámetros);
Palabra reservada: super
- Si el constructor en la subclase no invoca explícitamente al constructor de la superclase, el compilador de Java lo inserta automáticamente.
public Perro(String nombre) {
[espacio reservado para que el compilador agregue super(); ]
this.nombre = nombre;
}
Palabra reservada: super - Ejemplo
public class Perro extends Animal {
//Variable de instancia
private int hambre;
//Constructor con parámetros
public Perro(String nombre, int hambre) {
super(nombre);
this.hambre = hambre;
}
}
Hay una herencia, por lo tanto Perro es una subclase de Animal
Agrega una nueva variable
Llama al constructor de la superclase Animal
Agenda
- Ejemplo UML
- Palabra reservada super
- Ejemplo
- Polimorfismo
- Definición
- Ejemplo
- UML - Ejemplo completo para practicar
Polimorfismo Definicion
- Se refiere a la propiedad por la que es posible enviar mensajes
sintácticamente iguales a objetos de
tipos distintos.
- Está ligado a la herencia.
Animal
nombre: String
Animal(String nombre)
emitirSonido(): void
Perro
Perro(String nombre)
emitirSonido(): void
Gato
Gato(String nombre)
emitirSonido(): void
Polimorfismo Ejemplo
public abstract class Animal {
//Variable de instancia
protected String nombre;
//Constructor con parámetros
public Animal(String nombre) {
this.nombre = nombre;
}
public abstract void emitirSonido();
}
public class Perro extends Animal {
@Override
public void emitirSonido() {
System.out.println(“Guau!”);
}
}
public class Gato extends Animal {
@Override
public void emitirSonido() {
System.out.println(“Miau!”);
}
}
Polimorfismo Ejemplo
Animal
nombre: String
Animal(String nombre)
emitirSonido(): void
Perro
Perro(String nombre)
emitirSonido(): void
Gato
Gato(String nombre)
emitirSonido(): void
public static void main(String [] args) {
Perro [] perros = new Perro[2];
Perro perro1 = new Perro(“Ayudante de Santa”);
Perro perro2 = new Perro(“Procer”);
perros[0] = perro1;
perros[1] = perro2;
for (int i = 0; i < perros.lenght; i++) {
System.out.println(perros[i].emitirSonido());
}
}
Polimorfismo Ejemplo
Animal
nombre: String
Animal(String nombre)
emitirSonido(): void
Perro
Perro(String nombre)
emitirSonido(): void
Gato
Gato(String nombre)
emitirSonido(): void
public static void main(String [] args) {
Animal [] animales = new Animal[2];
Perro perro = new Perro(“Ayudante de Santa”);
Gato gato = new Gato(“Bola de nieve I”);
animales[0] = perro;
animales[1] = gato;
for (int i = 0; i < animales.lenght; i++) {
System.out.println(animales[i].emitirSonido());
}
}
Agenda
- Ejemplo UML
- Palabra reservada super
- Ejemplo
- Polimorfismo
- Definición
- Ejemplo
- UML - Ejemplo completo para practicar
UML
Animal
nombre: String
Animal(String nombre)
emitirSonido(): void
Perro
Perro(String nombre)
emitirSonido(): void
Felino
emitirSonido(): void
comer(): void
Tigre
Tigre(String nombre)
emitirSonido(): void
Gato
Gato(String nombre)
emitirSonido(): void
Abstracta
Abstracta
Concreta
Concreta
Concreta
Polimorfismo
By Henry
Polimorfismo
- 77