Impiegato e Studente sono sottoclassi di Persona; questo codice funziona ma non ho accesso ai metodi di Impiegato e Studente ma solo di Persona:
Persona arr[] = new Persona[2];
arr[0] = new Impiegato();
arr[1] = new Studente();
Aggiungendo i costruttori alle classi:
public class Studente extends Persona {
private int matricola;
private int prova;
public Studente() {
super();
}
public Studente(int eta, String nome, int matricola, int prova) {
super(eta, nome);
this.matricola = matricola;
this.prova = prova;
}
//...
}
public class Impiegato extends Persona {
private int stipendio;
public Impiegato() {
super();
}
public Impiegato(int eta, String nome, int stipendio) {
super(eta, nome);
this.stipendio = stipendio;
}
//...
}
public class Persona {
private int eta;
private String nome;
public Persona() {
}
public Persona(int eta, String nome) {
super();
this.eta = eta;
this.nome = nome;
}
//...
}
Puoi fare:
Persona arr[] = new Persona[2];
arr[0] = new Impiegato(38, "marameo", 1800);
arr[1] = new Studente(38, "marameo", 1, 1);