Interface segregation principle (ISP): No client should be forced to depend on methods it does not use.
The Payroll class should not depend on the AdminStaff class because it does not use the arrangeMeeting() method. Instead, it should depend on the SalariedStaff interface.
public class Payroll {
// violates ISP
private void adjustSalaries(AdminStaff adminStaff) {
// ...
}
}
public class Payroll {
// does not violate ISP
private void adjustSalaries(SalariedStaff staff) {
// ...
}
}