Boa noite.
Estou com um erro aqui. Não sei explicar a razao, entao segue abaixo o código
[code]public class PayrollSystemTest {
public static void main(String[] args) {
SalariedEmployee salariedEmployee = new SalariedEmployee("Johnn", "Smith", "111-11-1111", 800.00);
HourlyEmployee hourlyEmployee = new HourlyEmployee("Karen", "Price", "222-22-2222", 16.75, 40);
ComissionEmployee comissionEmployee = new ComissionEmployee("Sue", "Jones", "333-33-3333", 10000, .06);
BasePlusComissionEmployee basePlusComissionEmployee = new BasePlusComissionEmployee("Bob", "Lewis", "444-44-4444", 5000, .04, 300);
System.out.printf("%s\n%s: $%.2f\n\n", salariedEmployee, "earned", salariedEmployee.earnings());
System.out.printf("%s\n%s: $%.2f\n\n", hourlyEmployee, "earned", hourlyEmployee.earnings());
System.out.printf("%s\n%s: $%.2f\n\n", comissionEmployee, "earned", comissionEmployee.earnings());
System.out.printf("%s\n%s: $%.2f\n\n", BasePlusComissionEmployee, "earned", basePlusComissionEmployee.earnings());
Employee[] employees = new Employee[4];
employees[0] = salariedEmployee;
employees[1] = salariedEmployee;
employees[2] = salariedEmployee;
employees[3] = salariedEmployee;
System.out.println("Employees processed polymorphically: \n");
for (Employee currentEmployee : employees) {
System.out.println(currentEmployee);
if (currentEmployee instanceof BasePlusComissionEmployee){
BasePlusComissionEmployee employee = (BasePlusComissionEmployee) currentEmployee;
employee.setBaseSalary(1.10 * employee.getBaseSalary());
System.out.printf("new base salary with 10% increase is: $%,.2f\n", employee.getBaseSalary());
}
System.out.printf("earned $%,.2f\n\n", currentEmployee.earnings());
}
for (int i = 0; i < employees.length; i++) {
System.out.printf("Employee %d is a %s\n", i, employees[i].getClass().getName());
}
}[/code]
Alguém poderia me explicar porque a parte em negrito está dando esse erro?
System.out.printf("%s\n%s: $%.2f\n\n", BasePlusComissionEmployee, “earned”, basePlusComissionEmployee.earnings());