Объявление класса Manager, который наследуется от класса Employee (Java) - PullRequest
0 голосов
/ 25 апреля 2020

Я новичок в Java, и мне нужна помощь с тем, как я могу объявить класс Manager, который наследуется от класса Employee, и добавляет переменную экземпляра бонуса для хранения бонуса зарплаты. У меня есть этот код, который я могу обойти, и тестовая программа, которую я могу предоставить для его тестирования. Любые предложения о том, как реализовать конструкторы и методы здесь

public class Demo {

class Employee {

  int id;

  public Employee() {

  }

  public int getId() {
    return id;
  }

  public void setId(int id) {
    this.id = id;
  }
}

class Manager extends Employee {

  double bonus;

  public Manager() {
    super();
  }

  public double getBonus() {
    return bonus;
  }

  public void setBonus(double bonus) {
    this.bonus = bonus;
  }
}

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Manager m = new Manager();
        m.setId(1);
        m.setBonus(100);
        System.out.println("Manger has an ID of " + m.getId() + " with a bonus of " + m.getBonus());
    }

}

Ответы [ 2 ]

1 голос
/ 25 апреля 2020

Давайте начнем с 3 полей id, name и Salary for Employee, а менеджер получает дополнительный бонус поля. К зарплате Manager будет добавлен бонусный компонент к зарплате.

Для класса Employee создайте конструктор аргумента и установите все поля. Создайте получатели для требуемых полей.

public class Employee {

    protected int id;
    protected String Name;
    protected double Salary;

    public Employee(int id, String name, double salary) {
        this.id = id;
        this.Name = name;
        this.Salary = salary;
    }

    public int getId() {
        return id;
    }

    public String getName() {
        return Name;
    }

    public double getSalary() {
        return Salary;
    }

}

Класс Manager теперь будет расширять класс Employee. Исходя из этого требования, единственное различие между сотрудником и менеджером - это компонент заработной платы. Поскольку все поля в классе Employee установлен как защищенный, и мы расширяем класс Employee, состояние поля можно изменить в дочернем классе. В классе «Конструктор менеджера» зарплата будет рассчитываться как зарплата + бонус.

public class Manager extends Employee {

    private double bonus;

    public Manager(int id, String name, long salary,double bonus) {
        super(id, name, salary);
        this.bonus  = bonus;
        this.Salary =  salary + this.bonus;
    }

    public static void main(String[] args)
    {
        Manager mng = new Manager(1,"Manager",10000,100);
        Employee emp = new Employee(2,"Employer",10000);

        System.out.println("MANAGER SALARY " + mng.getSalary()+" "+mng.getId());
        System.out.println("EMPLOYER SALARY " + emp.getSalary()+" "+emp.getId());

    }


}
1 голос
/ 25 апреля 2020

Это будет выглядеть ниже. Изучите это и посмотрите, сможете ли вы понять это.

class Employee {

  int id;

  public Employee() {

  }

  public int getId() {
    return id;
  }

  public void setId(int id) {
    this.id = id;
  }
}

class Manager extends Employee {

  double bonus;

  public Manager() {
    super();
  }

  public double getBonus() {
    return bonus;
  }

  public void setBonus(double bonus) {
    this.bonus = bonus;
  }
}

public class Demo {

  public static void main(String[] args) {
    Manager m = new Manager();
    m.setId(1);
    m.setBonus(100);
    System.out.println("Manger has an ID of " + m.getId() + " with a bonus of " + m.getBonus());
  }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...