Aqui está a minha solução do desafio final do curso.
Estarei ao longo do tempo aplicando melhorias neste código.
Main
import com.screenmatch.listening.modules.Audio;
import com.screenmatch.listening.modules.Musicas;
import com.screenmatch.listening.modules.Podcasts;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int escolha = 0;
int escolhaMusica;
int escolhaPodcast;
while (escolha != 3) {
System.out.println("-- Bem vindo ao Screenmatch Listening --\n");
System.out.println("O que deseja reproduzir?");
System.out.println("""
\n1- Músicas
2- Podcasts
3- Sair do screenmatch
""");
escolha = scan.nextInt();
switch (escolha) {
case 1:
Audio musica = new Musicas();
System.out.println("Escolha as músicas disponíveis:");
System.out.println("[1] - There's a light that never goes out - The Smiths");
System.out.println("[2] - 1979 - The Smashing Pumpkins");
escolhaMusica = scan.nextInt();
switch(escolhaMusica) {
case 1:
((Musicas) musica).setArtista("The Smiths");
musica.setTitulo("There's a light that never goes out");
((Musicas) musica).setAnoDeLancamento(1986);
((Musicas) musica).setAlbum("The Queen Is Dead");
musica.setCurtidas(486);
musica.setDuracaoEmMin(4.03);
musica.setTotalDeRep(42000);
break;
case 2:
musica.setTitulo("1979");
((Musicas) musica).setArtista("The Smashing Pumpkins");
((Musicas) musica).setAnoDeLancamento(1995);
((Musicas) musica).setAlbum("Mellon Collie and the Infinite Sadness");
musica.setCurtidas(1000);
musica.setDuracaoEmMin(4.24);
musica.setTotalDeRep(100000);
break;
default:
System.out.println("OPÇÃO INVÁLIDA");
break;
}
((Musicas) musica).showDataMusics();
break;
case 2:
Podcasts podcast = new Podcasts();
System.out.println("Escolha uma das entrevistas disponíveis:");
System.out.println("[1] - Tamo competindo, tamo competindo - PodPah");
System.out.println("[2] - A CORDA - Flow Podcast");
escolhaPodcast = scan.nextInt();
switch (escolhaPodcast) {
case 1:
podcast.setTitulo("MAX VERSTAPPEN & SERGIO PÉREZ - Podpah #841");
podcast.setCurtidas(60000);
podcast.setDuracaoEmMin(44);
podcast.setTotalDeRep(772000);
break;
case 2:
podcast.setTitulo("KIM KATAGUIRI E TABATA AMARAL - Flowpodcast #545");
podcast.setCurtidas(951);
podcast.setDuracaoEmMin(240);
podcast.setTotalDeRep(897000);
break;
default:
System.out.println("OPÇÃO INVÁLIDA");
break;
}
((Podcasts) podcast).showDataPodcasts();
break;
}
}
}
}