Я работаю над этим проектом, где мне нужно иметь несколько уровней наследования для иерархической системы c. Иерархия работает следующим образом: Сотрудник (Аннотация) -> Технический сотрудник (Аннотация) -> Инженер-программист и Технический руководитель.
То, что я пытаюсь сделать, - это создать своего рода «переменную менеджера» в одном из этих классов, чтобы в достаточной степени установить sh отношения «есть» между техническим руководителем и инженером-программистом. По сути, мне нужно создать новый TechnicalLead, который является менеджером. Базовый оклад TechnicalLead должен быть в 1,3 раза больше, чем у TechnicalEmployee. По умолчанию у TechnicalLeads численность персонала должна составлять 4.
Я не могу обдумать эту идею, может кто-нибудь объяснить мне, как это делается? Я знаю, как работает наследование, но когда дело доходит до тщательного отслеживания их, искренне кажется, что я довольно ужасен в этом. Технически говоря, я не знаю, где что написать.
Сотрудник
abstract class Employee {
private String name;
protected double baseSalary;
Employee(String name, int baseSalary){
this.name = name;
this.baseSalary = baseSalary;
}
public String getName() {
return name;
}
public double getBaseSalary() {
return baseSalary;
}
}
Технический сотрудник
abstract class TechnicalEmployee extends Employee{
private int checkIns;
TechnicalEmployee(String name){
super(name, 75000);
}
}
Технический руководитель
class TechnicalLead extends TechnicalEmployee{
private int headCount;
TechnicalLead(String name) {
super(name);
baseSalary = getBaseSalary()*1.3;
this.headCount = 4;
}
}
Еще один быстрый вопрос, в этой части кода; baseSalary = getBaseSalary()*1.3;
Нужно ли определять baseSalary как защищенный? для доступа к приватному полю.