salve, salve!
Tenho a classe “BasePlusCommissionEmployee” que estende a classe CommissionEmploye, que por vez estende a classe Employee, porém nao estou conseguindo rodar o MAIN devido ao erro abaixo:
run:
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - constructor BasePlusCommissionEmployee in class iniciando.BasePlusCommissionEmployee cannot be applied to given types;
required: java.lang.String,java.lang.String,java.lang.String,double,double,double
found: java.lang.String,java.lang.String,java.lang.String,double,int
reason: actual and formal argument lists differ in length
at iniciando.Iniciando.main(Iniciando.java:74)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
Classe MAIN
public static void main(String[] args) {
SalariedEmployee salariedEmployee = new SalariedEmployee(
"John", "Smith", "111-111-1111", 800.00);
HourlyEmployee hourlyEmployee = new HourlyEmployee(
"Karen", "Price", "222-222-2222", 16.75, 40);
ComissionEmployee comissionEmployee = new ComissionEmployee(
"Sue", "Jones", "333-333-3333", 10000, .06);
BasePlusCommissionEmployee basePlusCommissionEmployee = new
BasePlusCommissionEmployee("Bob", "Lewis", "444-444-4444",
.04, 300);
System.out.println("Employeses processed individually: \n");
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",
basePlusCommissionEmployee.earnings());
Employe[] employees = new Employe[4];
employees[0] = salariedEmployee;
employees[1] = hourlyEmployee;
employees[2] = comissionEmployee;
employees[3] = basePlusCommissionEmployee;
System.out.println("Employee processed polymorphically:\n");
for (Employe currentEmploye : employees){
System.out.println(currentEmploye);
if (currentEmploye instanceof BasePlusCommissionEmployee){
BasePlusCommissionEmployee employee = (
BasePlusCommissionEmployee) currentEmploye;
employee.setBaseSalary(1.10 * employee.getBaseSalary());
System.out.printf("new base salary with 100% increase is: $%,.2f",
employee.getBaseSalary());
}
System.out.printf("earnead $%,.2f\n\n", currentEmploye.earnings());
}
for(int j = 0; j < employees.length; j++)
System.out.printf("Employee %d is a %s\n", j,
employees[j].getClass().getName());
}
BasePlusCommissionEmployee:
package iniciando;
public class BasePlusCommissionEmployee extends ComissionEmployee{
private double baseSalary;
public BasePlusCommissionEmployee (String first, String last, String ssn,
double sales, double rate, double salary){
super(first, last, ssn, sales, rate);
setBaseSalary(salary);
}
public void setBaseSalary(double salary){
baseSalary = (salary < 0.0 ) ? 0.0 : salary;
}
public double getBaseSalary(){
return baseSalary;
}
@Override
public double earnings(){
return getBaseSalary() + super.earnings();
}
@Override
public String toString(){
return String.format("%s %s: %s: $%,.2f",
"baxse-salaried", super.toString(),
"base salary", getBaseSalary());
}
}
ComissionEmploye:
package iniciando;
/**
*
* @author paulomv
*/
public class ComissionEmployee extends Employe{
private double grossSales;
private double commissionRate;
public ComissionEmployee(String first, String last, String ssn,
double sales, double rate){
super(first, last, ssn);
setGrossSales(sales);
setComissionRate(rate);
}
public void setComissionRate(double rate){
commissionRate = ( rate > 0.0 && rate < 1.0 ) ? rate : 0.0;
}
public double getComissionRate(){
return commissionRate;
}
public void setGrossSales(double sales){
grossSales = (sales < 0.0) ? 0.0 : sales;
}
public double getGrossSales(){
return grossSales;
}
@Override
public double earnings(){
return getComissionRate() * getGrossSales();
}
@Override
public String toString(){
return String.format("%s: %s\n%s: $%,.2f: %s: %.2f",
"commission employee", super.toString(),
"gross sales", getGrossSales(),
"commission rate", getComissionRate());
}
}
alguém pode me ajudar?