Java 继承父类属性的实践与示例

Java 是一种面向对象的编程语言,其核心特性之一就是继承。继承允许一个类(称为子类)继承另一个类(称为父类或超类)的属性和方法。本文将介绍如何在 Java 中实现继承,并通过一个实际问题来展示继承的用法。

继承的基本概念

在 Java 中,继承是通过关键字 extends 实现的。子类可以继承父类的非私有属性和方法。如果父类的方法需要被子类重写,可以使用 @Override 注解。

实际问题:员工管理系统

假设我们需要开发一个员工管理系统,其中包含不同类型的员工,如普通员工、经理和CEO。这些员工都有一些共有的属性,如姓名、工号和薪水,但也有一些特有的属性,如经理的下属列表和CEO的公司股票。

解决方案:使用继承

我们可以创建一个名为 Employee 的父类,包含所有员工共有的属性和方法。然后,为不同类型的员工创建子类,继承 Employee 类,并添加特有的属性和方法。

父类 Employee
public class Employee {
    protected String name;
    protected int id;
    protected double salary;

    public Employee(String name, int id, double salary) {
        this.name = name;
        this.id = id;
        this.salary = salary;
    }

    // 省略 getter 和 setter 方法
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
子类 Manager
public class Manager extends Employee {
    private List<Employee> subordinates;

    public Manager(String name, int id, double salary) {
        super(name, id, salary);
        this.subordinates = new ArrayList<>();
    }

    public void addSubordinate(Employee employee) {
        subordinates.add(employee);
    }

    // 省略其他方法
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
子类 CEO
public class CEO extends Employee {
    private double companyStocks;

    public CEO(String name, int id, double salary, double companyStocks) {
        super(name, id, salary);
        this.companyStocks = companyStocks;
    }

    // 省略其他方法
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

使用继承的序列图

以下是使用继承的序列图,展示了如何创建不同类型的员工对象:

CEO Manager Employee User CEO Manager Employee User 创建 Employee 对象 创建 Manager 对象 创建 CEO 对象 添加下属

结论

通过使用继承,我们可以有效地组织和管理代码,提高代码的复用性和可维护性。在员工管理系统的例子中,我们通过继承实现了不同类型员工的共有属性和方法的共享,同时允许每种类型的员工拥有其特有的属性和行为。这不仅简化了代码结构,还使得扩展和修改变得更加容易。

继承是 Java 中一个强大的特性,合理使用继承可以提高代码的质量和效率。然而,过度使用继承可能会导致代码结构过于复杂,因此需要根据实际需求和设计原则来平衡继承的使用。