내 코드에 문제가 있습니다. . 이것은 우리의 과제이다.재정의하고 상속
는 "clsWorker과 서브 클래스 clsHourlyWorker 및 clsSalariedWorker라는 이름의 슈퍼 클래스를 작성 모든 노동자의 이름과 급여 율이있는 모든 근로자를위한 주간 급여를 계산하는 방법 computePay (INT 시간)을 작성합니다. 시간당 근로자가 시간이 40 시간을 초과하면 근무 시간의 실제 시간당 시간당 임금이 지급됩니다. 시간당 근로자가 40 시간 이상 근무한 경우 초과 근무는 시간당 0.5 달러가 지급됩니다. 실제 시간 수에 관계없이 40 시간 동안 임금 상속을위한 테스트 프로그램 작성 노동자의 이름, 근무 시간 수 및 근로자 유형, 시간당 H 및 급여 S를 입력하십시오. 근로자의 급여율. 입력 한 모든 근로자의 급여를 표시하십시오. "
재정의와 상속이 필요합니다.
public class clsWorker
{
int hours=0,excess=0;
double salary,newSalary=0.0;
String sType;
public clsWorker()
{
}
public clsWorker(double sal,String type)
{
//this.hours=hours;
salary=sal;
sType=type;
}
public double computePay(int hours)
{
sType=sType.toUpperCase();
if(sType.equals("H"))
newSalary=(salary*hours)*7;
else if(sType.equals("S"))
{ if(hours>=40)
newSalary=salary*40;
else if(hours>40)
{
excess=hours-40;
newSalary=(newSalary+((newSalary*excess)*1.5))*7;
}
}
return newSalary;
}
}
내 서브 클래스
public class clsHourlyWorker extends clsWorker
{
double dSalary=0.0;
int iHours=0;
public clsHourlyWorker()
{
//super();
}
public clsHourlyWorker(int iHours, double salaryph,String sRate)
{
super(iHours,salaryph,sRate);
//clsWorker w=new clsWorker();
dSalary=newSalary;
}
public double getSalary()
{
return dSalary;
}
}
public class clsSalariedWorker extends clsWorker
{
double dSalary=0.0;
int iHours=0;
public clsSalariedWorker()
{
//super();
}
public clsSalariedWorker(int iHours,double salaryph,String sRate)
{
super(iHours,salaryph,sRate);
//super(salaryph,sRate);
//this.iHours=iHours;
//clsWorker w=new clsWorker();
dSalary=newSalary;
}
/*public void setSalary(int iHourjs)
{
}*/
public double getSalary()
{
return dSalary;
}
}
내 테스트 클래스
import java.util.*;
public class testSalary
{
public static void main(String[]args)
{
Scanner console=new Scanner(System.in);
System.out.println("Input Salary per hour: ");
double salaryph=console.nextDouble();
System.out.println("Input number of hours: ");
int iHours=console.nextInt();
console.nextLine();
System.out.println("Input Worker Name: ");
String sName=console.nextLine();
System.out.println("Input Type of Worker: ");
String sRate=console.next();
clsHourlyWorker hw=new clsHourlyWorker(iHours,salaryph,sRate);
clsSalariedWorker sw=new clsSalariedWorker(iHours,salaryph,sRate);
//System.out.println("Worker Name: "+sName+"\nSalary: "+hw.getSalary());
if(sRate.equals("H"))
System.out.println("Worker Name: "+sName+"\nSalary: "+hw.getSalary());
else if (sRate.equals("S"))
System.out.println("Worker Name: "+sName+"\nSalary: "+sw.getSalary());
}
}
사람이 어떻게 내 문제를 해결하기 위해 말해 줄 수 : 난 항상 NoSuchMethodError
내 슈퍼 클래스가 발생? 감사.
오류의 원인은 무엇입니까? –
정말 당신의 실제 과제 텍스트입니까? 그렇다면 Java 명명 규칙을 따르지 않는 것이 유감입니다. 클래스 이름은 대문자로 시작해야합니다. –
당신의'clsWorker'는 실제로 추상적으로 만들어 져야한다고 생각합니다. –