0

我正在尝试从派生类继承抽象成员,但它不起作用。我已将类设置为抽象类,例如

现在我的主程序对 CalculateWeeklyPay() 说了同样的话,我不应该在我的主类中需要它。我该如何解决?

4

4 回答 4

3
// Pay method
public double CalculateWeeklyPay(double Hours, double Wage)
{
    return Hours * Wage;
}

参数列表CalculateWeeklyPay隐藏类成员HoursWage。我怀疑你想要这个:

// Pay method
public double CalculateWeeklyPay()
{
    return Hours * Wage;
}

事实上,我会更进一步,将其设为只读属性:

// Pay method
public double WeeklyPay
{
    get { return Hours * Wage; }
}
于 2013-08-21T03:36:19.360 回答
1
 output += "\n\t   Weekly Pay:\t" + CalculateWeeklyPay().ToString("C2");

你定义public double CalculateWeeklyPay(double Hours, double Wage)了,但在这个函数中没有两个双数。这是错误的。

于 2013-08-21T03:39:30.983 回答
1
public override double CalculateWeeklyPay(){...}

abstract 与 virtual 类似,只是派生类必须覆盖它或者必须成为抽象类本身。

于 2013-08-21T03:41:50.070 回答
0

output += "\n\t Weekly Pay:\t" + CalculateWeeklyPay().ToString("C2");

CalculateWeeklyPay 需要 2 个参数:工资和工时。从定义中删除这些参数,它将起作用:

public override double CalculateWeeklyPay()
{
  ...
}
于 2013-08-21T03:32:11.073 回答