4
respostas

Herança e Polimorfismo

Tenho uma superclasse Pessoa (atributos: nome, idade) onde ela possui dois filhos Amigo (atributo: dataDeAniversario) e Conhecido (atributo: email).

Agora na definição do problema foi pedido para fazer uma classe Agenda que possui um atributo ArrayList pessoas que no construtor é para ser gerado automaticamente o cadastro para amigo (1) ou conhecido (2)

Até ai tava tudo beleza, agora vem a parte que travei:

O ArrayList são do tipo Pessoa mas como eu faço para adicionar as coisas específicas dos filhos?

Há outra classe que contém o método main e é criado um objeto Agenda passando no construtor a quantidade de contatos que será gerado.

Espero que entendam...

                        Me ajudeeeem
4 respostas

Oi Kevin. Não sei se eu entendi... Mas tem a classe Agenda que você que você cria uma lista de pessoas. Daí você instância objetos amigo e objetos conhecido e vai adicionando na lista. Seria isso ?

Vou te mostrar essa classe

public class Agenda {

    private ArrayList<Pessoa> pessoas = new ArrayList<Pessoa>();
    private static int quantidadeDeAmigos=0;
    private static int quantidadeDeConhecidos=0;

    public Agenda(int quantidade) {
        String nome, aniversario, email;
        int idade;
        Scanner in = new Scanner(System.in);

        for (int i=0; i<quantidade; i++) {
            System.out.println("Nome: ");    nome = in.nextLine();
            System.out.println("Idade: ");  idade = in.nextInt(); in.nextLine();
            if ((1+ (int) (Math.random() * 2) == 1)) { //Amigo
                System.out.println("Data de aniversario (DD/MM/AAAA): ");    aniversario = in.nextLine();

                // COMO ADICIONAR ???

                Agenda.quantidadeDeAmigos++;
            } else { // Conhecido

                // COMO ADICIONAR ???


                Agenda.quantidadeDeConhecidos++;
            }

        }

    }
}

Daí, se for amigo:

Amigo amigo = new Amigo();
amigo.setNome()... // Seta as propriedades
pessoas.add(amigo)

Se for conhecido faz a mesma coisa com Conhecido.

era isso??