【问题标题】:Using returns from two different methods in subclass在子类中使用两种不同方法的返回值
【发布时间】:2016-01-28 17:48:21
【问题描述】:

我正在努力完成学校作业的最后一部分。

我曾在另一个问题上问过这个问题,但没有得到答案。 我的超类中有两个方法需要在子类中使用,一个方法必须在另一个方法中调用才能返回结果,我不知道该怎么做。

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;
    }


    public void setHours(float a)
    {
        hours = a;
    }

    public float getHours()
    {
        return hours;
    }

    public void setRate(float a)
    {
        rate = a;
    }

    public float getRate()
    {
        return rate;
    }

    public void setHrsStr(int a)
    {
        hrsStr = a;
    }

    public int getHrsStr()
    {
        return hrsStr;
    }
}

这是整个超类,我需要将 calc_Payroll() 方法和 tax() 方法调用到子类,我需要 tax() 在 calc_Payroll() 中,因为我需要从这些计算净工资两种方法。

public class Payroll extends Pay
{
float net;
@Override
public void calc_Payroll()
    {
                 //I need to calculate the the net pay here. 
    }
}

【问题讨论】:

  • 同理。没有?
  • 提供更多关于“计算净工资”需要做什么的细节。理想情况下,您需要在 calc_Payroll() 的覆盖范围内调用什么?
  • 计算净工资只需返回总*税=净的结果。我想让它尽可能简单,理想情况下只调用 super calc_Payroll() 和 Tax(double a) 的结果

标签: java inheritance subclass invoke superclass


【解决方案1】:

您是否在为 Java 的语法而苦恼?

public class Payroll extends Pay
{
    float net;

    @Override
    public void calc_Payroll()
    {
        // you can call `super.calc_Payroll()`
        // you can call `tax(double a)`
    }
}

【讨论】:

  • 在某些方面我是肯定的。我会试试这个。
  • 我试过这个并且在税行上收到错误 - 令牌“double”上的语法错误,删除此令牌 - 行断点:工资单 [行:12] - calc_Payroll() - 无法解析为一个变量
  • 那是你的问题——我给你的是语法。显然,您需要初始化一个 a 变量,并以正确的顺序执行操作。
  • 对——你可以调用那个函数,但你的实际代码是tax(a);
  • 好的,这样就消除了语法错误,但它仍然说 a 无法解析为变量,我可以调用变量,但我认为使用“扩展”时已经发生了?
猜你喜欢
  • 1970-01-01
  • 2013-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-15
  • 2022-01-24
相关资源
最近更新 更多