Java 找不到符号-方法
很难在主界面中调用方法。一直说找不到symbol-method addSales(double) 我正在做一个编程项目,因为我们刚刚了解了继承,它有3个超类和3个子类。我有一个问题与一个子和超级类。他们被命名为小时和佣金。佣金每小时发放一次。我觉得我已经正确地编写了addSales方法,但是当我在main中调用它时,它说它找不到该方法。我是不是遗漏了什么?任何帮助都将不胜感激 佣金类别:Java 找不到符号-方法,java,methods,Java,Methods,很难在主界面中调用方法。一直说找不到symbol-method addSales(double) 我正在做一个编程项目,因为我们刚刚了解了继承,它有3个超类和3个子类。我有一个问题与一个子和超级类。他们被命名为小时和佣金。佣金每小时发放一次。我觉得我已经正确地编写了addSales方法,但是当我在main中调用它时,它说它找不到该方法。我是不是遗漏了什么?任何帮助都将不胜感激 佣金类别: public class Commission extends Hourly { private doubl
public class Commission extends Hourly
{
private double totalSales, commission;
public Commission(String eName, String eAddress, String ePhone,
String socSecNumber, double rate, double commissionRate)
{
super(eName, eAddress, ePhone, socSecNumber, rate);
totalSales = 0.0;
commission = commissionRate;
}
public double pay()
{
double payment = super.pay();
payment = (payment + (commission * totalSales));
return payment;
}
public String toString()
{
String result = super.toString();
result += "Total Sales: " + totalSales;
return result;
}
public void addSales(double totalS)
{
totalSales = totalSales + totalS;
}
}
小时班:
public class Hourly extends Employee
{
private int hoursWorked;
//-----------------------------------------------------------------
// Sets up this hourly employee using the specified information.
//-----------------------------------------------------------------
public Hourly (String eName, String eAddress, String ePhone,
String socSecNumber, double rate)
{
super (eName, eAddress, ePhone, socSecNumber, rate);
hoursWorked = 0;
}
//-----------------------------------------------------------------
// Adds the specified number of hours to this employee's
// accumulated hours.
//-----------------------------------------------------------------
public void addHours (int moreHours)
{
hoursWorked += moreHours;
}
//-----------------------------------------------------------------
// Computes and returns the pay for this hourly employee.
//-----------------------------------------------------------------
public double pay()
{
double payment = payRate * hoursWorked;
hoursWorked = 0;
return payment;
}
//-----------------------------------------------------------------
// Returns information about this hourly employee as a string.
//-----------------------------------------------------------------
public String toString()
{
String result = super.toString();
result += "\nCurrent hours: " + hoursWorked;
return result;
}
}
主要内容:
staff6
被声明为Hourly
,尽管它实际上是一个佣金
,但您正在尝试访问super class方法
将其声明为
佣金
员工6和员工7
都是小时
的实例。Hourly
类没有附加特定的方法
您必须将它们声明为佣金的具体实例。我看到下面的对象创建:
Hourly staff6 = new Commission("Marcus Gendron", "66 Highland St.", "272-9555", "123-62-5678", 6.25, 0.20);
addSales方法位于子类佣金中。但是staff6的类型是Hourly,它是父类,Hourly类没有这个方法。这是你看不到的方法addsales
要获得更详细的理解,请尝试以下行(这将很好地编译)。看看你有什么办法
Object staff6 = new Commission("Marcus Gendron", "66 Highland St.", "272-9555", "123-62-5678", 6.25, 0.20);
在这里,您只能调用类中存在的方法 因为您现在引用的小时类是addSales in not present on Hourly class,所以无法访问它
Hourly staff6 = new Commission("Marcus Gendron", "66 Highland St.", "272-9555", "123-62-5678", 6.25, 0.20);
在上面的代码中,Commission类对象引用了Hourly类。所以Commission对象将只允许访问那些小时类的方法(因为它们是继承的)和Commission类中小时类的重写方法 张贴你得到的错误和在哪一行。它没有说行上的数字,但它突出显示了行“staff6.addSales(400.0);”并说“找不到符号-方法addSales(double)”,我想得太多了。我的老师写东西的方式让我觉得我必须做一件事,但那是完全不同的。谢谢你的帮助。成功了。我还是个新手,所以有了这个网站真的很有帮助。
Hourly staff6 = new Commission("Marcus Gendron", "66 Highland St.", "272-9555", "123-62-5678", 6.25, 0.20);