1
resposta

[Sugestão] Gerenciamento de biblioteca

Sugestão para resolução

package br.com.meupacote;

public class Livro extends Midia{

private String autor;

public Livro(String tituloMidia, int anoPublicacaoMidia, String autor) {

    super(tituloMidia, anoPublicacaoMidia);
    this.autor=autor;
}

@Override
public void exibiInfo() {
    System.out.printf("\nCódigo: %s | Livro: \"%s\" - Autor: %s",codLIB,tituloMidia,autor);
}

}

package br.com.meupacote;

public class Revista extends Midia{

private int edicao;

public Revista(String tituloMidia, int anoPublicacaoMidia, int edicao) {

    super(tituloMidia, anoPublicacaoMidia);
    this.edicao=edicao;
}

@Override
public void exibiInfo() {
    System.out.printf("\nCódigo: %s | Revista: \"%s\" - Edição: %d",codLIB,tituloMidia,edicao);
}

}

package br.com.meupacote;

public class Ebook extends Midia{

private String formato;

public Ebook(String tituloMidia, int anoPublicacaoMidia, String formato) {

    super(tituloMidia, anoPublicacaoMidia);
    this.formato=formato;
}

@Override
public void exibiInfo() {
    System.out.printf("\nCódigo: %s | Revista: \"%s\" - Edição: %s",codLIB,tituloMidia,formato);
}

}

import br.com.meupacote.*;

public class PrinciapalHeranPoli {
public static void main (String[]args){

    Livro novolivro = new Livro("O Guia do Mochileiro das Galáxias",1979,"Douglas Adams");
    Revista novaRevista = new Revista("National Geographic",2023,245);
    Ebook novoEbook = new Ebook("Clean Code",2008,"PDF");

    novolivro.exibiInfo();
    novaRevista.exibiInfo();
    novoEbook.exibiInfo();
}

}

1 resposta

Oi, Pablo! Como vai?

Agradeço por compartilhar.

Sua sugestão ficou bem organizada e mostra um bom uso de herança e polimorfismo, já que Livro, Revista e Ebook reaproveitam a estrutura de Midia e cada classe sobrescreve o método exibiInfo() conforme sua necessidade. Um ajuste simples seria revisar a mensagem exibida na classe Ebook, pois ela está mostrando “Revista” e “Edição”; nesse caso, faria mais sentido exibir algo como Ebook e Formato.

Dica: ao sobrescrever métodos, confira se o texto exibido representa corretamente a classe atual. Isso ajuda a evitar confusões na saída do programa e deixa o código mais claro para quem for testar ou manter depois.

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