1
resposta

[Projeto] Gerenciamento de Biblioteca

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);
    }
}
1 resposta

Oi, Weid! Como vai?

Do jeito que você explicou, chamou atenção o uso correto de herança, polimorfismo e do método abstrato exibeTitulo, permitindo tratar Livro, Revista e Ebook como Midia no Main, deixando o código organizado e alinhado com a proposta da atividade.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!