codice:
public class Employee{
int age;
String firstname;
String lastname;
public Employee(){ // noargs
}
public Employee(int age, String firstname, String lastname){
this.age=age;
this.firstname=firstname;
this.lastname=lastname;
}
public void showDetails(){
System.out.println("Dipendente: " + firstname + " " + lastname + "\nEta: " + age);
}
public class Teacher extends Employee{
String school;
double salary;
public Teacher(int age, String firstname, String lastname, String school, double salary){
super(age,firstname,lastname);
this.school=school;
this.salary=salary;
}
public void showMoreDetails(){
System.out.println("He/She is teaching in " + school + " school.\nHis/Her salary is " + salary+ " €");
}
public void teach(String subject){
System.out.println("Teacher is teaching "+subject);
}
public static void main(String[] args){
Employee e1 = new Employee(23,"Mr.","Rossi");
e1.showDetails();
Teacher t1 = new Teacher(60,"Mrs.","Bianchi","ITIS",1030.5);
t1.showDetails();
t1.showMoreDetails();
}
}
}
Come mai c'è questo errore?
codice:
Employee.java:40: non-static variable this cannot be referenced from a static context
Teacher t1 = new Teacher(60,"Mrs.","Bianchi","ITIS",1030.5);
^
Employee.java:37: inner classes cannot have static declarations
public static void main(String[] args){
^
Inoltre, se levo 'static' dal main compila correttamente, ma all'esecuzione genera questa eccezione:
Exception in thread "main" java.lang.NoSuchMethodError: main
Per la istanziazione/visualizzazione dovrei ricorrere a una classe ausiliaria?