对于在同一家公司工作的经历和员工而言,两者是有很多共同点的。例如,每个月都要发工资,但是经理在完成目标任务后,还会获得奖金。此时,利用员工类来编写经理类就会少写很多代码,利用继承技术可以让经理类使用员工类中定义的属性和方法。编写程序,通过继承演示经理与员工的差异。
思路分析:典型的继承问题。父类是员工类,子类是经理类,经理类继承员工类,这样经理类中就只用额外实现奖金,即增加表示奖金的成员变量和设置及获取奖金的成员方法。
代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 |
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()); } } |
效果如图所示:
原文:http://www.cnblogs.com/cysolo/p/3560562.html