PHP 继承

2025年04月17日 | 阅读 4 分钟

面向对象编程方法的核心概念之一是继承。这项技术用于扩展现有类的功能来创建一个新类,而不是从头开始。PHP 拥有将继承集成到其对象模型所需的所有功能。当 PHP 软件开发中使用继承时,可以实现代码重用、减少冗余代码重复,并实现逻辑结构。

假设您需要创建一个新类,其大部分功能已在一个现有类中定义。通过继承,您可以创建一个新类,添加或删除功能,并扩展现有类。PHP 中的 “extends” 关键字实际上用于开发新类和现有类之间的继承关系。

语法

在阅读有关不同类型的继承及其示例之前,让我们先了解 PHP 中的 “Is-A” 关系。

什么是 “Is-A” 关系?

当一个新类(例如:继承类、子类、派生类等)与一个现有类(例如:基类、超类、父类等)有 “IS A” 联系时,继承就发挥作用了。

Inheritance in PHP

PHP 的继承类型

在 PHP 中,有三种不同类型的继承。

  • 单继承:一个父类是单个子类的继承来源。
  • 多层继承:类可以通过多层继承从其后代类继承。
  • 多重继承:当多个类共享一个父类时,就会发生多重继承。

PHP 中的单继承示例

当一个类直接从一个父类继承时,就会发生单继承。这意味着子类可以访问父类的所有公共和受保护(私有类除外)的属性和方法,从而实现清晰高效的代码重用。

示例

立即执行

输出

Animals make sound
Dog barks

PHP 中的多层继承示例

PHP 中的多层继承发生在一个类派生自一个子类,而该子类本身又派生自另一个父类。这使得最后一个派生类可以访问其直接父类和其祖父类的方法。

示例

立即执行

输出

Animals make sound
Dog barks
Puppy weeps

PHP 中的多重继承示例

多个子类继承自同一个父类时,就会发生多重继承。这使得每个子类都可以访问父类定义的通用功能,同时也有自己独特的功能。

示例

立即执行

输出

Animals make sound
Dog barks
Animals make sound
Cat meows

注意:私有成员不被继承,而公共成员和受保护成员会被继承。

PHP 方法重写示例

在方法重写中,子类提供了自己对父类中已定义方法的实现。这使得子类可以自定义或完全更改该继承方法的行为。

示例

立即执行

输出

Greetings from the base class
Thanks from the base class
Greetings from the base class
Thanks from the derived class

结论

继承是 PHP 编程的重要组成部分,它有助于 开发人员 创建可扩展的应用程序。使用不同类型的继承和方法重写有助于开发人员创建更具组织性和效率的 面向对象 代码。了解继承的工作原理对于在 PHP 中编写清晰的模块化程序会很有帮助。


下一个主题PHP 方法重载