Abaixo consta minha resolução para o projeto, adicionei também uma classe para Audio Livro
Classe Mãe Audio
package Projeto_POO.br.com.warelime.modelo;
public class Audio {
private String titulo;
private double duracao;
private int totalLikes;
private int totalAvaliacoes;
private double classificacao;
private int acessos;
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public double getDuracao() {
return duracao;
}
public void setDuracao(double duracao) {
this.duracao = duracao;
}
public int getTotalLikes() {
return totalLikes;
}
public int getTotalAvaliacoes() {
return totalAvaliacoes;
}
public double getClassificacao() {
return classificacao;
}
public int getAcessos() {
return acessos;
}
public void like() {
totalLikes++;
}
public void acessar() {
acessos++;
}
}
Classe Filha Musica
package Projeto_POO.br.com.warelime.modelo;
public class Musica extends Audio {
private String albulm;
private String artista;
private String genero;
public void informacoes() {
System.out.println("Titulo: " + getTitulo());
System.out.println("Artista: " + getArtista());
System.out.println("Duração: " + getDuracaoFormatado());
System.out.println("Albulm: " + getAlbulm());
System.out.println("Genero: " + getGenero());
}
public String getAlbulm() {
return albulm;
}
public void setAlbulm(String albulm) {
this.albulm = albulm;
}
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;
}
public void setDuracao(double duracao) {
super.setDuracao(duracao);
}
public String getDuracaoFormatado() {
double duracao = getDuracao();
int minutos = (int) (duracao / 60);
int segundos = (int) (duracao % 60);
return String.format("%02d:%02d", minutos, segundos);
}
@Override
public double getClassificacao() {
if (getTotalLikes() > 1000) {
return 5;
} else if (getTotalLikes() > 500) {
return 4.5;
} else if (getTotalLikes() > 200) {
return 4;
} else if (getTotalLikes() > 100) {
return 3.5;
} else if (getTotalLikes() > 50) {
return 3;
} else if (getTotalLikes() > 20) {
return 2.5;
} else if (getTotalLikes() > 10) {
return 2;
} else if (getTotalLikes() > 5) {
return 1.5;
} else if (getTotalLikes() > 2) {
return 1;
} else {
return 0;
}
}
}
Classe Filha Podcast
package Projeto_POO.br.com.warelime.modelo;
public class Podcast extends Audio{
private String apressentador;
private String descricao;
public void informacoes() {
System.out.println("Podcast: " + getTitulo());
System.out.println("Apresentador: " + getApressentador());
System.out.println("Descrição: " + getDescricao());
System.out.println("Duração Média por episódio: " + getDuracao() + " minutos");
}
public String getApressentador() {
return apressentador;
}
public void setApressentador(String apressentador) {
this.apressentador = apressentador;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
@Override
public double getClassificacao() {
if (getTotalLikes() > 350) {
return 5;
} else if (getTotalLikes() > 200) {
return 4.5;
} else if (getTotalLikes() > 100) {
return 4;
} else if (getTotalLikes() > 50) {
return 3.5;
} else if (getTotalLikes() > 20) {
return 3;
} else if (getTotalLikes() > 10) {
return 2.5;
} else if (getTotalLikes() > 5) {
return 2;
} else if (getTotalLikes() > 2) {
return 1.5;
} else if (getTotalLikes() > 0) {
return 1;
} else {
return 0;
}
}
}