问题遇到的现象和发生背景
题目是员工工资问题,在写主方法函数时无法调用子类中的getSalary函数,总是会显示无法引用非静态,将函数改为静态后子类又会报错,相关代码是参考网友的。
问题相关代码,请勿粘贴截图
package Employ;这里是主方法函数
public class SalaryDemo {
public static void main(String[] args){
SalariedEmploye zhangSan=new SalariedEmploye("张三",4,20000.00);
System.out.println("张三是固定员工,11月份生日,每月工资为20000.00");
zhangSan.BirthdayMonth=11;
System.out.println("张三在4月份的工资为"+SalariedEmploye.getSalary(4)+"元");
}
}
package Employ;这里是父类
public class Employe {
protected String name;
protected int BirthdayMonth;
public Employe() {
}
public Employe(String n, int day) {
name = n;
BirthdayMonth = day;
}
public double getSalary(int month) {
if (month == BirthdayMonth) {
return 100;
}
return 0;
}
}
这里是子类
public class SalariedEmploye extends Employe {
double Salary;
public SalariedEmploye(){}
public SalariedEmploye(String n,int day,double Salary){
super(n,day);
this.Salary=Salary;
}
public double getSalary(int month){
Salary+=super.getSalary(month);
return Salary;
}
}