Java继承和多态之abstract类
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 中完成抽象类的定义与使用,具体要求如下:
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 定义员工抽象类 Employee,其中包含 2 个受保护的变量和两个抽象方法
// 两个受保护的变量:姓名 name(String),和工资 salary(double);
//抽象方法 work,无返回值,表示工作内容
//抽象方法 info,无返回值,表示员工信息
// 定义一个公开的经理类 Manager,该类继承员工类,除了有员工类的基本属性外,还有岗位级别 gender(String)私有属性。
// 定义一个有参构造方法
// 重写 work() 方法,输出:“我负责对施工项目实施全过程、全面管理。”;
// 重写 info() 方法,输出:“姓名:xx,工资:xx,岗位级别:xx”。
/********** End **********/
-
定义员工抽象类 Employee,其中包含 2 个受保护的变量和两个抽象方法;
1.两个变量:姓名 name(String),和工资 salary(double);
2.抽象方法 work(),无返回值,表示工作内容;
3.抽象方法 info(),无返回值,表示员工信息。 -
定义一个公开的经理类 Manager,该类继承员工类,除了有员工类的基本属性外,还有岗位级别 gender(String)私有属性。
1.一个有参构造方法;
2.重写 work() 方法,输出:“我负责对施工项目实施全过程、全面管理。”;
3.重写 info() 方法,输出:“姓名:xx,工资:xx,岗位级别:xx”。
预期输出
姓名:张三,工资:80000.0,岗位级别:项目经理
我负责对施工项目实施全过程、全面管理。
完整代码如下
//请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
//定义员工抽象类 Employee,其中包含 2 个受保护的变量和两个抽象方法
abstract class Employee{
// 两个受保护的变量:姓名 name(String),和工资 salary(double);
protected String name;
protected double salary;
//抽象方法 work,无返回值,表示工作内容
public abstract void work();
//抽象方法 info,无返回值,表示员工信息
abstract void info();
}
//定义一个公开的经理类 Manager,该类继承员工类,除了有员工类的基本属性外,还有岗位级别 gender(String)私有属性。
public class Manager extends Employee{
private String gender;
// 定义一个有参构造方法
public Manager(String name,double salary,String gender) {
super();
this.name = name;
this.salary = salary;
this.gender = gender;
}
// 重写 work() 方法,输出:“我负责对施工项目实施全过程、全面管理。”;
public void work(){
System.out.println("我负责对施工项目实施全过程、全面管理。");
}
// 重写 info() 方法,输出:“姓名:xx,工资:xx,岗位级别:xx”。
public void info(){
System.out.println("姓名:"+name+",工资:"+salary+",岗位级别:"+gender);
}
}
/********** End **********/
main函数
public class Demo{
public static void main(String[] args) {
Manager e1 = new Manager("张三",80000,"项目经理");
e1.info();
e1.work();
}
你如不屈服,这世界又能把你怎样。 ——曼德拉