對於在同一家公司工作的經歷和員工而言,兩者是有很多共同點的。例如,每個月都要發工資,但是經理在完成目標任務後,還會獲得獎金。此時,利用員工類來編寫經理類就會少寫很多代碼,利用繼承技術可以讓經理類使用員工類中定義的屬性和方法。編寫程序,通過繼承演示經理與員工的差異。
思路分析:典型的繼承問題。父類是員工類,子類是經理類,經理類繼承員工類,這樣經理類中就只用額外實現獎金,即增加表示獎金的成員變量和設置及獲取獎金的成員方法。
代碼如下:
代碼如下:
import java.util.Date;
public class Employee {
private String name; //員工的姓名
private double salary; //員工的工資
private Date birthday; //員工的生日
public String getName() { //獲取員工的姓名
return name;
}
public void setName(String name) { //設置員工的姓名
this.name = name;
}
public double getSalary() { //獲取員工的工資
return salary;
}
public void setSalary(double salary) { //設置員工的工資
this.salary = salary;
}
public Date getBirthday() { //獲取員工的生日
return birthday;
}
public void setBirthday(Date birthday) { //設置員工的生日
this.birthday = birthday;
}
}
public class Manager extends Employee {
private double bonus;// 經理的獎金
public double getBonus() {// 獲得經理的獎金
return bonus;
}
public void setBonus(double bonus) {// 設置經理的獎金
this.bonus = bonus;
}
}
import java.util.Date;
public class Test {
public static void main(String[] args) {
Employee employee = new Employee();//創建Employee對象並為其賦值
employee.setName("Java");
employee.setSalary(100);
employee.setBirthday(new Date());
Manager manager = new Manager();//創建Manager對象並為其賦值
manager.setName("明日科技");
manager.setSalary(3000);
manager.setBirthday(new Date());
manager.setBonus(2000);
//輸出經理和員工的屬性值
System.out.println("員工的姓名:" + employee.getName());
System.out.println("員工的工資:" + employee.getSalary());
System.out.println("員工的生日:" + employee.getBirthday());
System.out.println("經理的姓名:" + manager.getName());
System.out.println("經理的工資:" + manager.getSalary());
System.out.println("經理的生日:" + manager.getBirthday());
System.out.println("經理的獎金:" + manager.getBonus());
}
}
效果如圖所示: