方法继承和调用

时间:2015-10-14 20:24:15

标签: java inheritance

我需要从超类继承一个实例方法,但我被卡住了。

public class Pay

private float hours;
private float rate;
private int hrsStr;
float gross;
double tax; 

public void calc_Payroll()
{
    if (hrsStr != 0)
        gross = hrsStr + ((hours - hrsStr) * 1.33f) * rate;
    else
        gross = hours * rate;
}

public void tax(double a)
    {
    if (gross <= 399.99)
                tax = .92;
                else
                    if (gross <= 899.99)
                        tax = .88;
                    else 
                        tax = .84;
    }

这是超类的一部分,我需要有相同的方法签名(???)以及调用税(double a)和calc_payroll()

这是我为子类所做的,但它没有用。

public class Payroll extends Pay
{
float net;
void calc_payroll()
    {               
    float finaltax = (float) tax;   
    net = gross * finaltax;

    }

}

1 个答案:

答案 0 :(得分:2)

子类中的void calc_payroll()不会覆盖或调用超类方法。

如果要覆盖基类中的方法,则方法签名必须相同。为清晰起见,请使用@override注释。

@override
public void calc_Payroll(float a, float b, int c, float d)
{
}

如果您的新方法具有不同的签名,则可以使用....

调用超类方法
void calc_payroll()
{
   super.calc_Payroll( ... );
}

取决于您在新方法中需要的行为,以及是否要在超类方法中调用行为。