// Fig. 10.14: HourlyEmployee.java // HourlyEmployee class extends Employee. public class HourlyEmployee extends Employee { private double wage; // wage per hour private double hours; // hours worked for week // constructor public HourlyEmployee( String first, String last, String socialSecurityNumber, double hourlyWage, double hoursWorked ) { super( first, last, socialSecurityNumber ); setWage( hourlyWage ); setHours( hoursWorked ); } // set hourly employee's wage public void setWage( double wageAmount ) { wage = wageAmount < 0.0 ? 0.0 : wageAmount; } // return wage public double getWage() { return wage; } // set hourly employee's hours worked public void setHours( double hoursWorked ) { hours = ( hoursWorked >= 0.0 && hoursWorked <= 168.0 ) ? hoursWorked : 0.0; } // return hours worked public double getHours() { return hours; } // calculate hourly employee's pay; // override abstract method earnings in Employee public double earnings() { if ( hours <= 40 ) // no overtime return wage * hours; else return 40 * wage + ( hours - 40 ) * wage * 1.5; } // return String representation of HourlyEmployee object public String toString() { return "\nhourly employee: " + super.toString(); } } // end class HourlyEmployee /************************************************************************** * (C) Copyright 1992-2003 by Deitel & Associates, Inc. and * * Prentice Hall. All Rights Reserved. * * * * DISCLAIMER: The authors and publisher of this book have used their * * best efforts in preparing the book. These efforts include the * * development, research, and testing of the theories and programs * * to determine their effectiveness. The authors and publisher make * * no warranty of any kind, expressed or implied, with regard to these * * programs or to the documentation contained in these books. The authors * * and publisher shall not be liable in any event for incidental or * * consequential damages in connection with, or arising out of, the * * furnishing, performance, or use of these programs. * *************************************************************************/