Escreva um programa que:
  • Crie uma classe chamada Livro com atributos titulo (String) e autor (String).
  • Crie uma classe derivada de Livro chamada Apostila, com atributos titulo (String) e autor (String).
  • Crie um vetor de 3 objetos Apostila e preencha-o com dados.
  • Imprima os titulos e autores de todos as Apostilas do vetor.

Passo 1

Beleza, então o enunciado pede pra gente:
  • Criar uma classe chamada Livro com dois atributos (título e autor).
  • Fazer uma classe Apostila que estende (herda de) Livro.
  • Montar um vetor (array) de 3 objetos Apostila e preencher com dados.
  • Imprimir título e autor de cada uma.
Conteúdo envolvido: Programação Orientada a Objetos (POO) em Java, mais especificamente construção de classes, herança, arrays e loops para impressão. Vamos precisar entender como definir atributos, construtor, o conceito de “extends” pra herdar comportamento, e depois um for pra imprimir tudo.

Passo 2

Primeiro a base: classe Livro.
Em POO, uma classe é um molde (blueprint) que descreve objetos; ela tem atributos (variáveis) e métodos (funções).
Aqui a gente vai criar atributos privados titulo e autor, um construtor pra inicializar esses campos e getters para permitir acesso.
public class Livro {
    private String titulo;
    private String autor;

    // Construtor: método especial que roda na hora de criar o objeto
    public Livro(String titulo, String autor) {
        this.titulo = titulo;
        this.autor  = autor;
    }

    // Getters: jeitos seguros de ler os atributos lá de fora
    public String getTitulo() {
        return titulo;
    }

    public String getAutor() {
        return autor;
    }
}

Passo 3

Agora a classe Apostila que herda de Livro.
Herança (a tal da palavra-chave extends) significa que Apostila vai “ganhar” tudo que Livro já tem (atributos e métodos), sem copiar código.
Se quisermos, podemos criar um construtor em Apostila que chama o construtor da classe-mãe usando super(...).
public class Apostila extends Livro {
    // A gente não precisa declarar titulo e autor de novo,
    // porque elas já vêm da classe Livro.

    // Construtor da Apostila: passa titulo/autor pra classe Livro.
    public Apostila(String titulo, String autor) {
        super(titulo, autor);
    }
}

Passo 4

Agora vamos montar um vetor com 3 objetos Apostila.
Em Java, um vetor (array) de Apostila se declara assim:
Apostila[] vetor = new Apostila[3];
Depois a gente preenche cada posição com um new Apostila(...).
vetor[0] = new Apostila("Java Básico", "Maria Silva");
vetor[1] = new Apostila("Orientação a Objetos", "João Souza");
vetor[2] = new Apostila("Estruturas de Dados", "Ana Pereira");

Passo 5

Por fim, para imprimir os títulos e autores de todas as apostilas, usamos um loop for.
Em cada iteração, pegamos o objeto na posição i e chamamos seus getters getTitulo() e getAutor().
for (int i = 0; i < vetor.length; i++) {
    System.out.println("Apostila " + (i+1) + ":");
    System.out.println("  Título: " + vetor[i].getTitulo());
    System.out.println("  Autor : " + vetor[i].getAutor());
    System.out.println();
}

Resposta

Segue o programa completo em Java:
// Classe-pai
public class Livro {
    private String titulo;
    private String autor;

    public Livro(String titulo, String autor) {
        this.titulo = titulo;
        this.autor  = autor;
    }

    public String getTitulo() {
        return titulo;
    }

    public String getAutor() {
        return autor;
    }
}

// Classe derivada
public class Apostila extends Livro {
    public Apostila(String titulo, String autor) {
        super(titulo, autor);
    }
}

// Classe com método main para testar
public class Main {
    public static void main(String[] args) {
        // Passo de criação do vetor
        Apostila[] vetor = new Apostila[3];
        vetor[0] = new Apostila("Java Básico", "Maria Silva");
        vetor[1] = new Apostila("Orientação a Objetos", "João Souza");
        vetor[2] = new Apostila("Estruturas de Dados", "Ana Pereira");

        // Impressão dos dados
        for (int i = 0; i < vetor.length; i++) {
            System.out.println("Apostila " + (i+1) + ":");
            System.out.println("  Título: " + vetor[i].getTitulo());
            System.out.println("  Autor : " + vetor[i].getAutor());
            System.out.println();
        }
    }
}

Exercícios relacionados