Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
0
respuestas

Constructores

  1. Clase Titulo

Se declara un constructor que recibe nombre y fecha de lanzamiento.

package com.alura.screenmatch.modelos;

public class Titulo {

private String nombre;
private int fechaDeLanzamiento;

public Titulo(String nombre, int fechaDeLanzamiento) {
    this.nombre = nombre;
    this.fechaDeLanzamiento = fechaDeLanzamiento;
}

public String getNombre() {
    return nombre;
}

public int getFechaDeLanzamiento() {
    return fechaDeLanzamiento;
}

}
2. Clase Serie

Esta clase hereda de Titulo, por lo que su constructor debe llamar al constructor de la clase padre usando super().

package com.alura.screenmatch.modelos;

public class Serie extends Titulo {

public Serie(String nombre, int fechaDeLanzamiento) {
    super(nombre, fechaDeLanzamiento);
}

}
3. Clase Pelicula

También hereda de Titulo y llama al constructor padre.

package com.alura.screenmatch.modelos;

public class Pelicula extends Titulo implements Clasificable {

public Pelicula(String nombre, int fechaDeLanzamiento) {
    super(nombre, fechaDeLanzamiento);
}

}
4. Clase Principal

Aquí se corrigen los errores al crear los objetos, pasando nombre y fecha al constructor.

import com.alura.screenmatch.modelos.Pelicula;
import com.alura.screenmatch.modelos.Serie;

public class Principal {

public static void main(String[] args) {

    Pelicula favorita = new Pelicula("The Matrix", 1999);
    Pelicula otra = new Pelicula("Titanic", 1997);

    Serie serie = new Serie("Breaking Bad", 2008);

    System.out.println(favorita.getNombre());
    System.out.println(otra.getNombre());
    System.out.println(serie.getNombre());
}

}
Conceptos que se aplican en este ejercicio

Constructores

Herencia

Uso de super()

Creación de objetos

Encapsulamiento con getters

super() permite llamar al constructor de la clase padre, lo cual es necesario cuando esa clase no tiene constructor vacío.