我试图从派生类继承抽象成员,但它无法正常工作。 我已将类设置为抽象,例如
现在我的主程序对CalculateWeeklyPay()说了同样的事情,我不应该在我的主类中需要它。我该如何解决这个问题?
答案 0 :(得分:3)
// Pay method
public double CalculateWeeklyPay(double Hours, double Wage)
{
return Hours * Wage;
}
CalculateWeeklyPay
的参数列表隐藏了班级成员Hours
和Wage
。我怀疑你想要这个:
// Pay method
public double CalculateWeeklyPay()
{
return Hours * Wage;
}
事实上,我会更进一步,将其改为只读属性:
// Pay method
public double WeeklyPay
{
get { return Hours * Wage; }
}
答案 1 :(得分:1)
output += "\n\t Weekly Pay:\t" + CalculateWeeklyPay().ToString("C2");
你定义public double CalculateWeeklyPay(double Hours, double Wage)
,但在这个函数中没有两个双数。这是错误的。
答案 2 :(得分:1)
public override double CalculateWeeklyPay(){...}
abstract类似于virtual,除了派生类必须覆盖它或者必须变为抽象本身。
答案 3 :(得分:0)
output += "\n\t Weekly Pay:\t" + CalculateWeeklyPay().ToString("C2");
CalculateWeeklyPay期待2个参数:工资和工时。从定义中删除这些参数,它将起作用:
public override double CalculateWeeklyPay()
{
...
}