Java对象的创建类的继承以及多态的使用
(1)创建一个员工类Employee,Employee的要求:
成员变量:
员工姓名(private String name)
员工工号( private int id)
员工工资( private int wage)
成员方法:
1、 员工工作 public abstract void work();
2、员工获得工资public abstract void getFullWage();
构造方法:
1、无参的构造方法 2、有参的构造方法,初始化成员变量。
(2)继承员工类编写一个经理类Manager,Manager的要求:
成员变量:
增加一个成员变量:奖金:int reward;(经理的工资由两部分组成:基本工资+奖金)
成员方法:
员工工作 - work() 这个方法要求输出: 该员工的名字+“经理在认真工作”。 员工获得工资-getFullWage () 这个方法要求输出: 该员工的名字+“经理的奖金是”+reward奖金+“,他的总工资是”+(wage基本工资+reward奖金);
构造方法:
通过调用父类的构造方法来给部分成员变量进行赋值。
(3)继承员工类编写一个普通员工类Commoner,Commoner的要求:
成员方法:
员工工作 -work() 这个方法要求输出: 该员工的名字+“这个普通员工在认真工作”。 员工获得工资-getFullWage() 这个方法要求输出: 该员工的名字+他的工资
构造方法:
通过调用父类的构造方法(super),来给成员变量进行赋值。
(4)创建一个测试类Test,Test要求:
1.创建一个普通员工 c
2.创建一个经理 m
3.采用多态的方式分别调用经理、普通员工的work()和getFullWage ()方法输出
4.输出学号和姓名
Employee.java
package java_11_10;
public abstract class Employee {
private String name;
private int id;
private int wage;
public abstract void work();
public abstract void getFullWage();
public Employee() {
super();
}
public Employee(String name, int id, int wage) {
super();
this.name = name;
this.id = id;
this.wage = wage;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getWage() {
return wage;
}
public void setWage(int wage) {
this.wage = wage;
}
}
Manager.java
package java_11_10;
public class Manager extends Employee {
private int reward;
public Manager() {
// TODO Auto-generated constructor stub
}
public Manager(String name, int id, int wage, int reward) {
super(name, id, wage);
this.reward = reward;
}
@Override
public void work() {
// TODO Auto-generated method stub
System.out.println(getName() + "经理在认真工作");
}
@Override
public void getFullWage() {
// TODO Auto-generated method stub
System.out.println(getName() + "经理的奖金是" + reward + ";他的总工资是" + (getWage() + reward));
}
}
Commoner.java
package java_11_10;
public class Commoner extends Employee {
public Commoner() {
// TODO Auto-generated constructor stub
}
public Commoner(String name, int id, int wage) {
super(name, id, wage);
}
@Override
public void work() {
// TODO Auto-generated method stub
System.out.println(getName() + "这个员工在认真工作");
}
@Override
public void getFullWage() {
// TODO Auto-generated method stub
System.out.println(getName() + "的工资是" + getWage());
}
}
Test.java
package java_11_10;
public class Test {
public static void main(String[] args) {
Employee c = new Commoner("张三", 1001, 5000);
c.work();
c.getFullWage();
Employee m = new Manager("李四", 2002, 7000, 1500);
m.work();
m.getFullWage();
}
}
运行结果截图: