Наследование
Общий класс должен предлагать интерфейс для этого.Как предлагать два метода сеттера.Он также должен содержать поля, поскольку они являются частью общего класса и не относятся к подклассам.
public class Request {
private boolean approved;
private boolean checked;
public void setApproved(boolean approved) {
this.approved = approved;
}
public void setChecked(boolean checked) {
this.checked = checked;
}
public boolean isApproved() {
return approved;
}
public boolean isChecked() {
return checked;
}
}
Ваша конечная точка может тогда просто сделать:
someRequest.setApproved(true);
someRequest.setChecked(true);
И это будет работать для каждого класса типа Request
, включая ваши подклассы Meal
и Training
.
Интерфейсы
Еще лучше было бы, если бы выпереместите это в интерфейс, такой как InspectionItem
:
public interface InspectionItem {
void approve();
void check();
boolean isApproved();
boolean isChecked();
}
И затем вы позволите общему классу реализовать следующее:
public class Request implements InspectionItem {
private boolean approved;
private boolean checked;
@Override
public void approve() {
approved = true;
}
@Override
public void check() {
checked = true;
}
@Override
public boolean isApproved() {
return approved;
}
@Override
public boolean isChecked() {
return checked;
}
}
Тогда ваша конечная точка будет работать на всемкоторый имеет тип InspectionItem
, а не только Request
s:
someItem.approve();
someItem.check();