package br.com.biblioteca;
public class Midia {
private String titulo;
private int publicacao;
public Midia(String titulo, int publicacao) {
this.titulo = titulo;
this.publicacao = publicacao;
}
public String getTitulo() {
return titulo;
}
public int getPublicacao() {
return publicacao;
}
public String gerarCodigo() {
return "LIB-" + titulo.substring(0,3) + publicacao;
}
public void exibirInfo() {
System.out.println("Código: " + gerarCodigo() + " | Título: \"" + titulo + "\"");
}
}
package br.com.biblioteca;
public class Livro extends Midia{
private String autor;
public Livro(String titulo, int publicacao, String autor) {
super(titulo, publicacao);
this.autor = autor;
}
@Override
public void exibirInfo() {
System.out.println("Código: " + gerarCodigo() + " | Livro: \"" + getTitulo() + "\" - Autor: " + autor);
}
}
package br.com.biblioteca;
public class Revista extends Midia {
private int edicao;
public Revista(String titulo, int publicacao, int edicao) {
super(titulo, publicacao);
this.edicao = edicao;
}
@Override
public void exibirInfo() {
System.out.println("Código: " + gerarCodigo() + " | Revista: \"" + getTitulo() + "\" - Edição: " + edicao);
}
}
package br.com.biblioteca;
public class Ebook extends Midia {
private String formato;
public Ebook(String titulo, int publicacao, String formato) {
super(titulo, publicacao);
this.formato = formato;
}
@Override
public void exibirInfo() {
System.out.println("Código: " + gerarCodigo() + " | Ebook: \"" + getTitulo() + "\" - Formato: " + formato);
}
}
package br.com.biblioteca;
public class Principal {
public static void main(String[] args) {
Midia livro = new Livro("O Guia do Mochileiro das Galáxias", 1979, "Douglas Adams");
Midia revista = new Revista("National Geographic", 2023, 245);
Midia ebook = new Ebook("Clean Code", 2008, "PDF");
livro.exibirInfo();
revista.exibirInfo();
ebook.exibirInfo();
}
}
Saída:
Código: LIB-O G1979 | Livro: "O Guia do Mochileiro das Galáxias" - Autor: Douglas Adams
Código: LIB-Nat2023 | Revista: "National Geographic" - Edição: 245
Código: LIB-Cle2008 | Ebook: "Clean Code" - Formato: PDF