Menu
CoddyTech

回顾:员工继承层次

本课属于 Coddy Java 学习旅程的“面向对象编程”单元。第 27 课,共 87 课。

challenge icon

挑战

简单

让我们构建一个完整的员工层级系统,综合运用本章介绍的所有继承概念。你将创建一个公司结构,让不同类型的员工共享常见属性,同时拥有各自专门的行为。

你将把代码分成 4 个文件:

  • Employee.java:创建所有员工共用的基类。每位员工都有姓名和薪水。添加一个构造函数,用于初始化这两个字段;再添加一个方法 getDetails(),返回:[name] earns $[salary]。还要添加一个方法 work(),打印:[name] is working。
  • Manager.java:创建一个继承 Employee 的类。经理有一个额外的 teamSize 字段,表示他们管理的人数。使用 super 处理父类的初始化。重写 work() 方法,打印:[name] is managing a team of [teamSize]。添加一个方法 getManagerDetails(),返回:Manager: [name] earns $[salary], Team size: [teamSize]。
  • Developer.java:创建另一个继承 Employee 的类。开发人员有一个 language 字段,表示他们擅长的编程语言。同样,使用 super 处理父类部分。重写 work() 方法,打印:[name] is coding in [language]。添加一个方法 getDeveloperDetails(),返回:Developer: [name] earns $[salary], Language: [language]。
  • Main.java:在这里把所有内容整合起来。你会收到 5 个输入:员工姓名、薪水、经理的团队人数、另一位员工的姓名,以及开发人员使用的编程语言。创建一个 Manager 和一个 Developer,然后分别对他们调用专属的详情方法,再调用他们的 work() 方法。

你会按以下顺序收到 5 个输入:经理姓名(String)、经理薪水(double)、团队人数(int)、开发人员姓名(String)和编程语言(String)。开发人员的薪水设为 75000.0。

使用 String.format("%.2f", salary) 将所有薪水值格式化为保留 2 位小数。输出总共应包含 4 行:先显示经理的详情和工作行为,再显示开发人员的详情和工作行为。

亲手试试

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // 读取输入
        String managerName = scanner.nextLine();
        double managerSalary = scanner.nextDouble();
        int teamSize = scanner.nextInt();
        scanner.nextLine(); // 读取并跳过换行符
        String developerName = scanner.nextLine();
        String language = scanner.nextLine();
        
        // Developer 的薪水固定为 75000.0
        double developerSalary = 75000.0;
        
        // TODO: 使用 managerName、managerSalary 和 teamSize 创建 Manager 对象
        
        // TODO: 使用 developerName、developerSalary 和 language 创建 Developer 对象
        
        // TODO: 使用 getManagerDetails() 输出经理的详细信息
        
        // TODO: 调用经理的 work() 方法
        
        // TODO: 使用 getDeveloperDetails() 输出开发人员的详细信息
        
        // TODO: 调用开发人员的 work() 方法
    }
}

面向对象编程中的所有课

自己练习: Java 在线编译器