Мой супер не работает, хотя я думаю, что он настроен правильно - PullRequest
0 голосов
/ 01 ноября 2019

Я делаю задание для школы, и я внедряю супер, но он не работает, но я чувствую, что все сделано правильно. Кто-нибудь есть идеи, почему мой супер дает мне синтаксическую ошибку. Он говорит мне: «Конструктор Employee (String, String, String) не определен, хотя он и есть.

Вот мой класс сотрудника, из которого выходят мои другие классы, в которых есть эта супер ошибка.

/**
* Abstract class Employee - write a description of the class here
*
* @author (your name here)
* @version (version number or date here)
*/
public abstract class Employee
{
   private String firstName;
   private String lastName;
   private String socialSecurityNumber;

   public Employee(String first, String last, String ssn)
   {
       firstName=first;
       lastName=last;
       socialSecurityNumber=ssn;
   }

   public abstract double earnings();

   public String toString()
   {
       return("\n"+firstName+" "+lastName+
               "\nsocial security number: "+ socialSecurityNumber);
   }
}

Вот один класс с супер, который дает мне проблему.

public class SalariedEmployee extends Employee{
    private double weeklySalary;

    // four-argument constructor
    public SalariedEmployee(String first, String last, String ssn, double salary) {
        super(first, last, ssn); // pass to Employee constructor
        setWeeklySalary(salary); // validate and store salary
    } // end four-argument SalariedEmployee constructor

    // set salary
    public void setWeeklySalary(double salary) {
        weeklySalary = salary < 0.0 ? 0.0 : salary;
    } // end method setWeeklySalary

    // return salary
    public double getWeeklySalary() {
        return weeklySalary;
    } // end method getWeeklySalary

    // calculate earnings; override abstract method earnings in Employee
    public double earnings() {
        return getWeeklySalary();
    } // end method earnings

    // return String representation of SalariedEmployee object
    public String toString() {
        return String.format("salaried employee: %s\n%s: $%,.2f",
            super.toString(), "weekly salary", getWeeklySalary());
    } // end method toString
 } // end class SalariedEmployee

У моих двух других классов, как я сказал, есть та же самая проблема, таким образом, я не думаю, что было бы необходимо отправлять их, но любойПомощь очень ценится!

1 Ответ

1 голос
/ 01 ноября 2019

Это может произойти, если у вас есть другой класс Employee, определенный где-то еще в вашем проекте (это может быть один из ваших файлов .java в том же пакете, некоторые операции импорта или путь к классам).

Ваш вызовсупер (первый, последний, ssn) все хорошо. Вы можете попробовать скомпилировать два файла в командной строке, чтобы подтвердить вышесказанное:

javac Employee.java SalariedEmployee.java
...