Fala galerinha, este projeto de estudo eu fiz desta forma: Classe abstrata Audio
package br.com.ac.meusaudios.modelos;
public abstract class Audio {
protected String titulo;
protected int totalReproducoes;
protected int totalCurtidas;
protected int classificacao;
protected int totalAvaliacoes;
protected int somaNotas;
public Audio(String titulo) {
this.titulo = titulo;
}
public void curte() {
totalCurtidas++;
}
public void reproduz() {
totalReproducoes++;
}
public void avalia(int nota) {
if (nota < 1 || nota > 5) {
System.out.println("Nota inválida!\nInforme um valor de 1 a 5.");
return;
}
somaNotas += nota;
totalAvaliacoes++;
classificacao = somaNotas / totalAvaliacoes;
}
public abstract void exibeDetalhes();
public int getClassificacao() {
return classificacao;
}
}
subclasse Musica:
package br.com.ac.meusaudios.modelos;
public class Musica extends Audio {
private String album;
private String artista;
private String genero;
public Musica(String titulo, String album, String artista, String genero) {
super(titulo);
this.album = album;
this.artista = artista;
this.genero = genero;
}
public String getAlbum() {
return album;
}
public void setAlbum(String album) {
this.album = album;
}
public String getArtista() {
return artista;
}
public void setArtista(String artista) {
this.artista = artista;
}
public String getGenero() {
return genero;
}
public void setGenero(String genero) {
this.genero = genero;
}
@Override
public void exibeDetalhes() {
System.out.println("Música: " + titulo);
System.out.println("Álbum: " + album);
System.out.println("Artista: " + artista);
System.out.println("Gênero: " + genero);
System.out.println("Total de Curtidas: " + totalCurtidas);
System.out.println("Total de Reproduções: " + totalReproducoes);
System.out.println("Classificação: " + classificacao);
System.out.println();
}
}
subclasse Podcast:
package br.com.ac.meusaudios.modelos;
public class Podcast extends Audio {
private String host;
private String descricao;
public Podcast(String titulo, String host, String descricao) {
super(titulo);
this.host = host;
this.descricao = descricao;
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
@Override
public void exibeDetalhes() {
System.out.println("Podcast: " + titulo);
System.out.println("Host: " + host);
System.out.println("Descrição: " + descricao);
System.out.println("Total de Curtidas: " + totalCurtidas);
System.out.println("Total de Reproduções: " + totalReproducoes);
System.out.println("Classificação: " + classificacao);
System.out.println();
}
}
Classe App:
package br.com.ac.meusaudios.modelos;
public class App {
public static void main(String[] args) {
Musica musica1 = new Musica("Fear of the Dark", "Fear of the Dark", "Iron Maiden", "Metal");
Podcast podcast1 = new Podcast("DevTalks", "Anderson Chaves", "Discussões sobre desenvolvimento.");
musica1.reproduz();
musica1.curte();
musica1.avalia(5);
musica1.avalia(4);
musica1.exibeDetalhes();
podcast1.reproduz();
podcast1.reproduz();
podcast1.curte();
podcast1.avalia(5);
podcast1.avalia(3);
podcast1.exibeDetalhes();
}
}
Por favor deixem o feedback de vocês. pra quem quiser verificar o repositorio no GitHub, aqui esta o link: Repositorio Remoto