/*JAVA练习题14题:
定义一个抽象的"Role"类 有姓名,年龄,性别等成员变量
1:要求尽可能隐藏所有变量(能够私有就私有,能够保护就
不要公有).再通过GetXXX()和SetXXX()方法对各变量进行
读写.具有一个抽象的play(){play游戏}方法,该方法不返
回任何值,同时至少定义两个构造方法,Role类中要体现
this的几种用法。
2:从Role类派生出一个Employee{员工}类,该类具有Role类的所
有成员,构造方法除外,并扩展salary{工资}成员变量 同时增加
一个静态成员变量“职工编号 ID”,同样要有至少两个构造
方法,要体现出this和super的几种用法,还要求覆盖play()
方法,并提供一个final sing()sing唱歌}方法。
3:“Manager{领导}”类继承“Employee{员工}”类,有一个final成员变量
“vehicle{车辆}”.
4:在main()方法中制造Manager和Employee对象,并测试
这些对象的方法。
*/
//Role 角色
abstract class Role{
private String name;
private int age;
// gender 性别 1:男.2:女;
private int gender;
public Role(){
}
public Role(String name,int age){
this.name =name;
this.age=age;
}
public Role(String name,int age,int gender){
this(name,age);
this.gender=gender;
}
//封装
public void SetName(String name){
this.name = name;
}
public String GetName(){
return name;
}
public void SetAge(int age){
this.age = age;
}
public int GetAge(){
return age;
}
public void SetGender(int gender){
this.gender = gender;
}
public int GetGender(){
return gender;
}
public abstract void play();
}
class Employee extends Role{
//salary 工资
private int salary;
static int id;
public Employee(){
}
public Employee(String name,int age,int gender,int salary){
super(name,age,gender);
this.salary=salary;
}
public void SetSalary(int salary){
this.salary = salary;
}
public int GetSalary(){
return salary;
}
public void play(){
System.out.println("员工正在打乒乓球比赛");
}
public final void sing(){
System.out.println("领导正在组织员工'五.一'歌咏比赛");
}
public void info(){
System.out.println("工号:"+id+" 姓名:"+GetName()+" 年龄:"+GetAge()+" 性别:"+GetGender()+" 工资"+GetSalary());
}
}
class Manager extends Employee{
final String vehicle;
public Manager(String name,int age,int gender,int salary,String vehicle){
super(name,age,gender,salary);
this.vehicle=vehicle;
}
public void info(){
System.out.println("工号:"+id+" 姓名:"+GetName()+" 年龄:"+GetAge()+" 性别:"+GetGender()+" 工资:" +GetSalary()+" 交通工具:"+vehicle );
}
}
public class TestRole{
public static void main(String[] args){
Employee e = new Employee(“王勇”,30,1,5000);
Employee.id++;
e.info();
e.play();
e.sing();
Manager m = new Manager("李丽",41,2,10000,"比亚迪汽车");
Employee.id++;
m.info();
}
}