modelos/Audio.java
package modelos;
public class Audio {
private String titulo;
private int duracion;
protected int totalDeReproducciones;
protected int meGusta;
private int clasificacion;
public void meGusta() {
this.meGusta++;
}
public void reproducir() {
this.totalDeReproducciones++;
}
// Getters
public String getTitulo() { return titulo; }
public int getDuracion() { return duracion; }
public int getTotalDeReproducciones() { return totalDeReproducciones; }
public int getMeGusta() { return meGusta; }
public int getClasificacion() { return clasificacion; }
// Setters
public void setTitulo(String titulo) { this.titulo = titulo; }
public void setDuracion(int duracion) { this.duracion = duracion; }
public void setClasificacion(int clasificacion) { this.clasificacion = clasificacion; }
}
modelos/Cancion.java
package modelos;
public class Cancion extends Audio {
private String album;
private String artista;
private String genero;
// Método especializado (para mostrar que la herencia funciona)
public void mostrarDetalles() {
System.out.println("Título de la Canción: " + getTitulo());
System.out.println("Artista: " + artista);
System.out.println("Reproducciones: " + totalDeReproducciones);
System.out.println("Me Gusta: " + meGusta);
}
// Getters y Setters específicos
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; }
}
modelos/Podcast.java
package modelos;
public class Podcast extends Audio {
private String host;
private String descripcion;
private int numeroEpisodio;
// Método especializado
public void mostrarDetalles() {
System.out.println("Título del Podcast: " + getTitulo());
System.out.println("Host: " + host);
System.out.println("Episodio N°: " + numeroEpisodio);
System.out.println("Reproducciones: " + totalDeReproducciones);
}
// Getters y Setters específicos
public String getHost() { return host; }
public void setHost(String host) { this.host = host; }
public String getDescripcion() { return descripcion; }
public void setDescripcion(String descripcion) { this.descripcion = descripcion; }
public int getNumeroEpisodio() { return numeroEpisodio; }
public void setNumeroEpisodio(int numeroEpisodio) { this.numeroEpisodio = numeroEpisodio; }
}
principal/Principal.java
package principal;
import modelos.Cancion;
import modelos.Podcast;
import modelos.Audio;
public class Principal {
public static void main(String[] args) {
System.out.println("--- PRUEBA DE CANCIÓN ---");
Cancion miCancion = new Cancion();
miCancion.setTitulo("Electric Feel");
miCancion.setArtista("MGMT");
miCancion.setDuracion(4);
// Simular uso:
for (int i = 0; i < 50; i++) {
miCancion.reproducir();
}
miCancion.meGusta();
miCancion.meGusta();
miCancion.mostrarDetalles();
System.out.println("Total de Likes: " + miCancion.getMeGusta());
System.out.println("-------------------------");
System.out.println("--- PRUEBA DE PODCAST ---");
Podcast miPodcast = new Podcast();
miPodcast.setTitulo("El Futuro del Desarrollo");
miPodcast.setHost("AluraTech");
miPodcast.setDuracion(45);
// Simular uso:
for (int i = 0; i < 150; i++) {
miPodcast.reproducir();
}
miPodcast.meGusta();
miPodcast.mostrarDetalles();
System.out.println("Total de Reproducciones: " + miPodcast.getTotalDeReproducciones());
}
}