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

Made with Slides.com