假如我们在开发一个系统时需要对员工类进行设计,员工包含3个属性:姓名、工号以及工资。
经理也是员工,除了含有员工的属性外,另为还有一个奖金属性。
请使用继承的思想设计出员工类和经理类。要求类中提供必要的方法进行属性访问。
点击查看代码
/*
假如我们在开发一个系统时需要对员工类进行设计,员工包含3个属性:姓名、工号以及工资。
经理也是员工,除了含有员工的属性外,另为还有一个奖金属性。
请使用继承的思想设计出员工类和经理类。要求类中提供必要的方法进行属性访问。
*/
abstract class Staff{
String name;
String id;
int salary;
//构造方法
public Staff() {
}
public Staff(String name, String id, int salary) {
this.name = name;
this.id = id;
this.salary = salary;
}
//定义一个抽象方法,子类继承需要重写
public abstract void work();
}
class Worker extends Staff{
public Worker() {
}
public Worker(String name, String id, int salary) {
super(name, id, salary);
//继承父类的name,id,salary,格式(父类的构造方法里的参数)
}
@Override
//对于父类的work()进行重写
public void work() {
System.out.println("普通员工敲代码");
}
}
class Manager extends Staff{
int common;
public Manager() {
}
public Manager(String name, String id, int salary, int common) {
//不仅仅要继承父类的构造方法里的参数也要在this 一个新的参数common
super(name, id, salary);
this.common = common;
}
@Override
public void work() {
System.out.println("经理做PPT");
}
}
public class AbstractText {
public static void main(String[] args) {
//父子关系
Staff s1 = new Worker("王骏", "sj1001", 10000); // 抽象多态
s1.work();
Staff s2 = new Manager("李娜","sj1002",6000,200000);
s2.work();
}
}