C#实现继承的抽象成员

时间:2013-08-21 03:26:28

标签: c#

我试图从派生类继承抽象成员,但它无法正常工作。 我已将类设置为抽象,例如

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

4 个答案:

答案 0 :(得分: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; }
}

答案 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()
{
  ...
}