面向对象编程:继承与多态深入解析
1. 继承的基础概念
继承是面向对象编程中的一个核心概念,它允许我们创建新的类(子类),通过吸收现有类(超类)的成员,并为其添加新的功能。在 Java 中,我们使用 extends
关键字来创建子类,子类可以继承超类的成员,但超类的私有成员在子类中是隐藏的。
1.1 子类构造函数的调用链
当实例化一个子类对象时,会启动一系列的构造函数调用。子类构造函数在执行自身任务之前,会显式地通过 super
引用调用其直接超类的构造函数,或者隐式地调用超类的默认构造函数或无参构造函数。如果超类也是从其他类派生而来的,那么超类的构造函数会继续调用其超类的构造函数,以此类推,直到调用到 Object
类的构造函数。最后,最初的子类构造函数的主体才会完成执行。
以下是一个简单的示例,展示了 CommissionEmployee
和 BasePlusCommissionEmployee
类的构造函数调用链:
graph TD;
A[BasePlusCommissionEmployee 构造函数调用] --> B[CommissionEmployee 构造函数调用];
B --> C[Object 构造函数调用];
C --> D[CommissionEmployee 构造函数初始化变量];
D --> E[BasePlusCommissionEmployee