public class ProductionWorker extends Employee
{
private int shift;
private double rateOfPay;
private double hoursWorked;
ProductionWorker(String name, int id, int shift, double rateOfPay, double hoursWorked)
{
super(name, id);
this.shift = shift;
this.rateOfPay = rateOfPay;
this.hoursWorked = hoursWorked;
}
public class TeamLeader extends ProductionWorker
{
private double monthlyBonus;
TeamLeader(String name,int id, int shift, double rateOfPay, double hoursWorked, double monthlyBonus)
{
super(name, id , shift, rateOfPay, hoursWorked);
this.monthlyBonus = monthlyBonus;
}
public double calcPay()
{
double pay = 0;
//night shift
if (shift == 2)
{
pay = ((hoursWorked + hoursWorked / 2) * rateOfPay) + monthlyBonus;
}
else
{
pay = (hoursWorked * rateOfPay) + monthlyBonus;
}
return pay;
}
}我将类ProductionWorker扩展到类TeamLeader,然后在类TeamLeader上创建了一个方法calcPay()我的问题是,我需要从类ProductionWorker中获取变量shift,hoursOfWorked和rateOfPay的值,这样我就可以使用calcPay()方法来执行我的main.Can了,有人能帮我吗,提前谢谢。
发布于 2015-02-13 14:30:59
要访问父类(ProductionWorker)的变量,需要将变量范围从private更改为protected。
私有变量仅在类中可见。受保护的变量在子类中可见,对包中的所有类都可见
你可以参考这个链接:http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html。
如果您不希望将它们设置为受保护,也可以为变量创建getter和setter,但这不是首选方法。
例如getter和setter:
private int shift;
protected int getShift() {
return this.shift;
}
protected void setShift(int shift) {
this.shift = shift;
}https://stackoverflow.com/questions/28493652
复制相似问题