Salve ragazzi ho creato una interfaccia "Tassabile" e voglio implementarla in tre classi: Persona, Studente, Lavoratore. Dove le ultime due sono figlie della prima cioè Persona è abstract. Poi voglio creare un metodo statico "StampaTasse" che stampa a video le tasse di ogni Persona, Studente, Lavoratore usando ovviamente l'interfaccia Tassabile definita ogni volta opportunamente. Java mi da errore nel programma stampa tasse. Adesso vi allego il tutto. GRAZIE!!!
package J10;
public abstract class Persona implements Tassabile {
private String nome;
private int eta;
public String getNome() {
return nome; }
public String setNome(String nome) {
return this.nome = nome; }
public int getEta() {
return eta; }
public void setEta(int eta) {
this.eta = eta; }
public String toString() { //override perchè riscrivo toString che è gia definito
//nella classe padre Object
return "Persona [nome=" + nome + ", eta=" + eta + "]"; }
public Persona(String nome, int eta) {
super(); // perchè è astratta e quindi eredita dalla classe object
this.nome = nome;
this.eta = eta; }
public String codiceFiscale() {
return getNome()+getEta();
}
public double aliquotaFiscale() {
return 0.5;
}
public double detrazioni() {
return 0.2;
}
}
package J10;
public class Studente extends Persona {
private String matricola;
public Studente(String nome, int eta, String matricola) {
super(nome,eta);
this.matricola = matricola; }
public String getMatricola() {
return matricola; }
public void setMatricola(String matricola) {
this.matricola = matricola; }
public String toString() {
return super.toString()+"Studente [matricola=" + matricola + "]"; }
public String codiceFiscale() {return super.getNome()+super.getEta();}
public double aliquotaFiscale() {return 0.05;}
public double detrazioni() {return 0.02;}
}
package J10;
public class Lavoratore extends Persona {
private String professione;
public Lavoratore(String nome, int eta, String professione) {
super(nome,eta);
this.professione = professione; }
public String getProfessione() {
return professione; }
public void setProfessione(String professione) {
this.professione = professione; }
public String toString() {
return super.toString()+"Lavoratore [professione=" + professione + "]"; }
public String codiceFiscale() {return super.getNome()+super.getEta();}
public double aliquotaFiscale() {return 0.005;}
public double detrazioni() {return 0.002;}
}
package J10;
public interface Tassabile {
String codiceFiscale();
double aliquotaFiscale();
double detrazioni();
}
package J10;
public class StampaTasse {
public static void main(String[] args) {
Persona[] arrayPersona;
Studente[] arrayStudente;
int i;
i=0;
arrayPersona=new Persona[2];
arrayStudente=new Studente[2];
arrayPersona[0].setNome("Antonio");
arrayPersona[0].setEta(27);
arrayPersona[1].setNome("Luca");
arrayPersona[1].setEta(40);
arrayStudente[0].setNome("Michele");
arrayStudente[0].setEta(20);
arrayStudente[0].setMatricola("123456");
arrayStudente[1].setNome("Andrea");
arrayStudente[1].setEta(25);
arrayStudente[1].setMatricola("987654");
for(i=1;i<3;i++){
System.out.println(arrayPersona[i].codiceFiscale());
System.out.println(arrayPersona[i].aliquotaFiscale());
System.out.println(arrayPersona[i].detrazioni());
}
}
}