Versão atual:

JAVA - Escrever em um arraylist diferentes elementos

Olá, boa noite. Eu estou com uma dúvida em relação à ArrayList em java. Eu preciso criar uma lista que, irá conter Alunos, Professores e Dependentes, cada um com seus respectivos nomes, etc (totalizando oito variáveis). Como eu posso fazer isso? Eu tentei assim:

List todos = new ArrayList<>();
aluno inserirA = new aluno(nome, idade, telefone, endereco, campus, horario, curso, fase);
                listaA.add(inserirA);
                todos.add(inserirA);

professor inserirP = new professor(nomep, idadep, telefonep, enderecop, campusp, horariop, cursoLe, qualificacoes);

                listaP.add(inserirP);
                todos.add(inserirP);

dependente inserirD = new dependente(nomed, idaded, nomedr, telefoned, grauEnsino, localEnsino, enderecod, horariod);

                listaD.add(inserirD);
                todos.add(inserirD);
package cadastro;

public class aluno extends pessoa implements Comparable<aluno> {

    private String curso, fase, campus;

    public aluno(String nome, int idade, String telefone, String endereco, String campus, String horario, String curso, String fase) {
        super(nome, idade, telefone, endereco, horario);
        this.campus = campus;
        this.curso = curso;
        this.fase = fase;
    }

    public String getCampus() {
        return campus;
    }

    public void setCampus(String campus) {
        this.campus = campus;
    }

    public String getCurso() {
        return curso;
    }

    public void setCurso(String curso) {
        this.curso = curso;
    }

    public String getFase() {
        return fase;
    }

    public void setFase(String fase) {
        this.fase = fase;
    }

    public String toString() {
        return "Nome: " + this.getNome() + " Curso: " + this.curso + " Fase: " + this.fase + " Telefone: " + this.getTelefone() + " Campus: " + this.campus + " Endereço: " + this.getEndereco() + " Horário: " + this.getHorario();
    }

    public int compareTo(aluno o) {
        return this.getNome().compareTo(o.getNome());
    }

}
package cadastro;

public class dependente extends pessoa implements Comparable <dependente> {
// String nome, String nomerd, int idade, String telefone, String grauEnsino, String localEnsino, String endereco, String horario

    public dependente(String nome, int idade, String nomerd, String telefone, String grauEnsino, String localEnsino, String endereco, String horario) {
        super(nome, idade, telefone, endereco, horario);
        this.nomerd = nomerd;
        this.grauEnsino = grauEnsino;
        this.localEnsino = localEnsino;
    }

    private String nomerd, grauEnsino, localEnsino;

    public String getGrauEnsino() {
        return grauEnsino;
    }

    public void setGrauEnsino(String grauEnsino) {
        this.grauEnsino = grauEnsino;
    }

    public String getLocalEnsino() {
        return localEnsino;
    }

    public void setLocalEnsino(String localEnsino) {
        this.localEnsino = localEnsino;
    }

    public String getNomerd() {
        return nomerd;
    }

    public void setNomerd(String nomerd) {
        this.nomerd = nomerd;
    }

    public String toString(String nome, String nomerd, int idade, String telefone, String grauEnsino, String localEnsino, String endereco, String horario) {
        return "Nome: " + this.getNome() + " Idade: " + this.getIdade() + " Responsável: " + nomerd + " Telefone: " + this.getTelefone() + " Grau de ensino: " + this.grauEnsino + " Local de ensino: " + this.localEnsino + " Endereço: " + this.getEndereco() + " Horário: " + this.getHorario();
    }

    public int compareTo(dependente o) {
        return this.getNome().compareTo(o.getNome());
    }
}
package cadastro;

public class pessoa {

    private String nome, telefone, endereco, campus, horario;
    private Integer idade;

    public pessoa(String nome, int idade, String telefone, String endereco, String horario) {
        this.nome = nome;
        this.idade = idade;
        this.telefone = telefone;
        this.endereco = endereco;
        this.horario = horario;

    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getTelefone() {
        return telefone;
    }

    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }

    public String getEndereco() {
        return endereco;
    }

    public void setEndereco(String endereco) {
        this.endereco = endereco;
    }

    public int getIdade() {
        return idade;
    }

    public void setIdade(int idade) {
        this.idade = idade;
    }

    public String getHorario() {
        return horario;
    }

    public void setHorario(String horario) {
        this.horario = horario;
    }

}
package cadastro;

public class professor extends pessoa implements Comparable<professor> {

    private String cursoLe, qualificacoes, campus;

    public professor(String nome, int idade, String qualificacoes, String telefone, String cursoLe, String campus, String endereco, String horario) {
        super(nome, idade, telefone, endereco, horario);
        this.cursoLe = cursoLe;
        this.campus = campus;
        this.qualificacoes = qualificacoes;
    }

    public String getCursoLe() {
        return cursoLe;
    }

    public void setCursoLe(String cursoLe) {
        this.cursoLe = cursoLe;
    }

    public String getQualificacoes() {
        return qualificacoes;
    }

    public void setQualificacoes(String qualificacoes) {
        this.qualificacoes = qualificacoes;
    }

    public String getCampus() {
        return campus;
    }

    public void setCampus(String campus) {
        this.campus = campus;
    }

    public String toString(String nome, int idade, String qualificacoes, String telefone, String cursoLe, String campus, String endereco, String horario) {
        return "Nome: " + this.getNome() + " Qualificações: " + this.qualificacoes + " Telefone: " + this.getTelefone() + " Curso Lecionável: " + this.cursoLe + " Campus: " + this.campus + " Endereço: " + this.getEndereco() + " Horário: " + this.getHorario();
    }

    public int compareTo(professor o) {
        return this.getNome().compareTo(o.getNome());
    }
}

Desse modo não está rolando, pois ele retorna:

[Nome:1Curso:1Fase:1Telefone:1Campus:1Endereço:1Horário:1, cadastro.professor@14ae5a5, cadastro.dependente@7f31245a]

Versões(2):

Ver a versão formatada

JAVA - Escrever em um arraylist diferentes elementos

Comentário

new question