Considere o cenário de um sistema de gerenciamento de biblioteca, onde Livro representa diferentes tipos de livros e Biblioteca é uma classe que agrega esses livros, como mostra o diagrama a seguir.

Os trechos de código em Java a seguir são parte dessa implementação; assuma que o resto do código não apresentado foi implementado com base no diagrama.
class LivroFisico extends Livro {..
public void exibirInfo() {
System.out.println(titulo + “ – livro Físico”);
}
...
class LivroDigital extends Livro {..
public void exibirInfo() {
System.out.println(titulo + “ – Livro Digital”);
}
...
class Biblioteca { ..
public void exibirLivros() {
for(Livro livro : livros) {
livro.exibirInfo();
}
}
...
bib.adicionarLivro(new LivroFisico(“1984”));
bib.adicionarLivro(new LivroDigital(“Macunaíma”));
bib.exibirLivros();
Quando executado, esse código exibirá o seguinte resultado:
Provas
Questão presente nas seguintes provas