Answer:
Complete answer to above question is given below.
Explanation:
Employee.java
import java.util.Date;
public class Employee
{
private int empID;
private Address address;
private Name name;
private Date date;
public Employee()
{
}
public Employee(int empID)
{
this.empID = empID;
}
public int getEmpID()
{
return empID;
}
public void setEmpID(int empID)
{
this.empID = empID;
}
public Address getAddress()
{
return address;
}
public void setAddress(Address address)
{
this.address = address;
}
public Name getName()
{
return name;
}
public void setName(Name name)
{
this.name = name;
}
public Date getDate()
{
return date;
}
public void setDate(Date date)
{
this.date = date;
}
}
Name.java
public class Name {
private String name;
public Name(String name) {
super();
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Address.java
public class Address {
private String addr;
public Address(String addr) {
super();
this.addr = addr;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
}
SalariedEmployee.java
public class SalariedEmployee extends Employee {
private double annualSalary;
public SalariedEmployee(double annualSalary) {
super();
this.annualSalary = annualSalary;
}
public double getAnnualSalary() {
return annualSalary;
}
public void setAnnualSalary(double annualSalary) {
this.annualSalary = annualSalary;
}
}
HourlyEmployee.java
public class HourlyEmployee extends Employee {
private double hourlyrate;
private double hours_worked;
private double earnings;
public HourlyEmployee(double hourlyrate, double hours_worked) {
super();
this.hourlyrate = hourlyrate;
this.hours_worked = hours_worked;
}
public double getEarnings()
{
if(hours_worked<=40)
{
earnings=hours_worked*hourlyrate;
}
else if(hours_worked>40)
{
earnings=40*hourlyrate+(hours_worked-40)*hourlyrate*1.5;
}
return earnings;
}
public double getHourlyrate() {
return hourlyrate;
}
public void setHourlyrate(double hourlyrate) {
this.hourlyrate = hourlyrate;
}
public double getHours_worked() {
return hours_worked;
}
public void setHours_worked(double hours_worked) {
this.hours_worked = hours_worked;
}
public void setEarnings(double earnings) {
this.earnings = earnings;
}
Test.java
import java.util.Date;
public class Test {
public static void main(String[] args) {
System.out.println("_____Salaried Employee_____");
SalariedEmployee se=new SalariedEmployee(50000);
se.setEmpID(1234);
se.setName(new Name("Williams"));
se.setAddress(new Address("4,Richmond Street"));
se.setDate(new Date("Oct-11-2014"));
System.out.println("Employee Id :"+se.getEmpID());
System.out.println("Employee Name :"+se.getName().getName());
System.out.println("Employee Address :"+se.getAddress().getAddr());
System.out.println("Joining Date :"+se.getDate());
System.out.println("The Annual Salary :"+se.getAnnualSalary());
System.out.println("\n_____Hourly Employee_____");
HourlyEmployee he1=new HourlyEmployee(8.5,39);
he1.setEmpID(4567);
he1.setName(new Name("Kane"));
he1.setAddress(new Address("5,lake View Road"));
he1.setDate(new Date("Nov-12-2015"));
System.out.println("Employee Id :"+he1.getEmpID());
System.out.println("Employee Name :"+he1.getName().getName());
System.out.println("Employee Address :"+he1.getAddress().getAddr());
System.out.println("Joining Date :"+he1.getDate());
System.out.println("The Earnings Of An HourlyEmployee :"+he1.getEarnings());
System.out.println("\n_____Hourly Employee_____");
HourlyEmployee he2=new HourlyEmployee(9.5,47);
he2.setEmpID(1111);
he2.setName(new Name("John"));
he2.setAddress(new Address("17,Villey Parley Street"));
he2.setDate(new Date("Dec-13-2011"));
System.out.println("Employee Id :"+he2.getEmpID());
System.out.println("Employee Name :"+he2.getName().getName());
System.out.println("Employee Address :"+he2.getAddress().getAddr());
System.out.println("Joining Date :"+he2.getDate());
System.out.println("The Earnings Of An HourlyEmployee :"+he2.getEarnings());
}
}
Output:
_____Salaried Employee_____
Employee Id :1234
Employee Name :Williams
Employee Address :4,Richmond Street
Joining Date :Sat Oct 11 00:00:00 IST 2014
The Annual Salary :50000.0
_____Hourly Employee_____
Employee Id :4567
Employee Name :Kane
Employee Address :5,lake View Road
Joining Date :Thu Nov 12 00:00:00 IST 2015
The Earnings Of An HourlyEmployee :331.5
_____Hourly Employee_____
Employee Id :1111
Employee Name :John
Employee Address :17,Villey Parley Street
Joining Date :Tue Dec 13 00:00:00 IST 2011
The Earnings Of An HourlyEmployee :479.75