public class Main {
static void main(String[] args) {
Midia livro1 = new Livros("Clean Architecture",1500,"Robert C. Martin");
Midia revista = new Revista("Forbes",2026,200);
Midia ebook = new Ebook("Como Aprender ingles em 90 dias",2026,"PDF");
livro1.exibeTitulo();
revista.exibeTitulo();
ebook.exibeTitulo();
}
}
public abstract class Midia {
private String titulo;
private int anoPublicacao;
private String tituloCom3;
public Midia(String titulo, int anoPublicacao) {
this.titulo = titulo;
this.anoPublicacao = anoPublicacao;
this.tituloCom3 = titulo.substring(0,3);
}
public String getTitulo() {
return titulo;
}
public int getAnoPublicacao() {
return anoPublicacao;
}
public String getTituloCom3() {
return tituloCom3;
}
protected String gerarCodigo(){
String titulocom3 = titulo.substring(0,3);
return "Lib- " + titulocom3 + anoPublicacao;
}
public abstract void exibeTitulo();
}
public class Livros extends Midia{
private String autor;
public Livros(String titulo, int anoPublicacao, String autor) {
super(titulo, anoPublicacao);
this.autor = autor;
}
@Override
public void exibeTitulo() {
System.out.println("Código : " + this.gerarCodigo() + "| Livro : " + getTitulo() + " - Autor : " + autor);
}
}
public class Revista extends Midia{
private int edicao;
public Revista(String titulo, int anoPublicacao, int edicao) {
super(titulo, anoPublicacao);
this.edicao = edicao;
}
@Override
public void exibeTitulo() {
System.out.println("Código : " + this.gerarCodigo() + "| Revista : " + getTitulo() + " - Edição : " + edicao);
}
}
public class Ebook extends Midia {
private String formato;
public Ebook(String titulo, int anoPublicacao, String formato) {
super(titulo, anoPublicacao);
this.formato = formato;
}
@Override
public void exibeTitulo() {
System.out.println("Código : " + this.gerarCodigo()+ "| Ebook : " + getTitulo() + " - Formato : " + formato);
}
}