У меня есть абстрактный класс Employee
с двумя конкретными подклассами, MinorEmployee
и AdultEmployee
.Я знаю, как создать статический метод фабрики в Employee
, который создает экземпляр конкретного подкласса:
public abstract class Employee() {
public static Employee create(LocalTime birthdate) {
if (/* omitted */) {
return new MinorEmployee();
} else {
return new AdultEmployee();
}
}
}
Есть ли способ в Java, чтобы запретить вызывающей стороне в том же пакете непосредственно создавать экземпляр MinorEmployee
или AdultEmployee
?
Я не могу сделать их конструкторы частными, или Employee
не сможет получить к ним доступ.Я также не хочу вкладывать их в Employee
.