抽象类抽象方法例题

假如我们在开发一个系统时需要对员工类进行设计,员工包含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();
    }
}
posted @   wang_jun  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示