/**
*Object`s name:inheritanceManagerTest
*super class:inheritanceManagerTest;
*subClass1:Manager;
*subClass2:Employee;
*/
package inheritanceManager;
/**
* this program demonstrates inheritance.
* @author Reflection Basec
*
*/
public class inheritanceManagerTest
{
public static void main(String[] args)
{
//construct a Manager object
Manager boss=new Manager("Carl Carl",80000,1987,12,15);
boss.setBonus(5000);
Employee[] staff=new Employee[3];
//fill the staff array with Manager and Employee objects
staff[0]=boss;
staff[1]=new Employee("Harry Harry",50000,1989,10,1);
staff[2]=new Employee("Tommy Tommy",40000,1990,2,14);
//print out information about all Employee objects
for (Employee e: staff )
System.out.println("name= "+e.getName()+" ,salary="+e.getSalary());
}
}
//-------------------------------------
package inheritanceManager;
import java.util.Date;
import java.util.GregorianCalendar;
public class Employee
{
private String name;
private double salary;
private Date hireDay;
public Employee(String n,double s,int year,int month,int day)
{
name=n;
salary=s;
GregorianCalendar calendar=new GregorianCalendar(year,month-1,day);
hireDay=calendar.getTime();
}
public String getName()
{
return name;
}
public double getSalary()
{
return salary;
}
public Date getHireDay()
{
return hireDay;
}
public void raiseSalary(double byPercent)
{
double raise=salary*byPercent/100;
salary+=raise;
}
}
//-------------------------------------
package inheritanceManager;
public class Manager extends Employee
{
private double bonus;
/**
@param n the employee`s name@param s the salary
@param year the hire year
@param month the hire month
@param day the hire day
*/
{
super(n,s,year,month,day);
bonus=0;
}
public double getSalary()
{
double baseSalary=super.getSalary();
return baseSalary+bonus;
}
public void setBonus(double b)
{
bonus=b;
}
}