Необходимо реализовать программу, в которой будут использоваться все модификаторы доступы - private, default, protected, public на трех уровнях наследования. Также необходимо использовать абстрактный класс.
Я сделал пока так, но понимаю, что это ужасный код. Как сделать его более правильным?
abstract public class Person {
protected String firstName;
protected String lastName;
protected String gender;
private int empId;
public Person(String firstName, String lastName, String gender) {
this.firstName = firstName;
this.lastName = lastName;
this.gender = gender;
}
protected abstract void getInfo();
abstract public String getFirstName();
abstract public String getLastName();
abstract public String getGender();
}
подкласс Person
import interfaces.Salary;
public class Employee extends Person implements Salary {
private int salary;
protected int experience;
public Employee(String firstName, String lastName, String gender, int experience) {
super(firstName, lastName, gender);
this.experience = experience;
}
@Override
public void getInfo() {
}
@Override
public String getFirstName() {
return firstName;
}
@Override
public String getLastName() {
return lastName;
}
@Override
public String getGender() {
return gender;
}
@Override
public void setSalary(int salary) {
}
@Override
public int getSalary() {
return salary;
}
}
подкласс Employee
public class Manager extends Employee {
public int bonus;
public Manager(String firstName, String lastName, String gender, int experience, int bonus) {
super(firstName, lastName, gender, experience);
this.bonus = bonus;
}
}
Интерфейс
public interface Salary {
void setSalary(int salary);
int getSalary();
}
Очень сильно торможу из-за нехватки фантазии и опыта разработки
Сборка персонального компьютера от Artline: умный выбор для современных пользователей