mport java.io.*;
public class Test {
public static void main(String[] args) {
Employee harry = new Employee("Harry Hacker", 50000);
Manager manager1 = new Manager("Tony Tester", 80000);
manager1.setSecretary(harry);
Employee[] staff = new Employee[2];
staff[0] = harry;
staff[1] = manager1;
try {
ObjectOutputStream out = new ObjectOutputStream(
new FileOutputStream("employee.dat"));
out.writeObject(staff);
out.close();
ObjectInputStream in = new ObjectInputStream(new FileInputStream(
"employee.dat"));
Employee[] newStaff = (Employee[]) in.readObject();
in.close();
/**
* 通过harry对象来加薪 将在secretary上反映出来
*/
newStaff[0].raiseSalary(10);
for (int i = 0; i < newStaff.length; i++)
System.out.println(newStaff[i]);
} catch (Exception e) {
e.printStackTrace();
}
}
}
class Employee implements Serializable {
public Employee(String n, double s) {
name = n;
salary = s;
}
/**
*
* 加薪水
*
*/
public void raiseSalary(double byPercent) {
double raise = salary * byPercent / 100;
salary += raise;
}
public String toString() {
return getClass().getName() + "[name = " + name+ ",salary = " + salary+ "]";
}
private String name;
private double salary;
}
class Manager extends Employee
{
public Manager(String n, double s)
{
super(n, s);
secretary = null;
}
/**
*
* 设置秘书
*
*/
public void setSecretary(Employee s)
{
secretary = s;
}
public String toString()
{
return super.toString()+ "[secretary = " + secretary+ "]";
}
// secretary代表秘书
private Employee secretary;
}.