Maison > Article > développement back-end > Compréhension approfondie de la programmation orientée objet PHP : extension et personnalisation de la programmation orientée objet
La programmation orientée objet PHP peut être étendue via des extensions et des classes personnalisées. Une classe étendue hérite des propriétés et des méthodes de la classe parent et peut ajouter de nouvelles propriétés et méthodes ; une classe personnalisée implémente des fonctions spécifiques en implémentant des méthodes d'interface. Dans le cas réel, en étendant la classe abstraite Shape, des formes concrètes telles que Cercle et Rectangle sont créées et la zone peut être calculée dynamiquement.
Programmation orientée objet PHP : extensions et personnalisations
La programmation orientée objet (POO) vous permet de créer du code réutilisable et maintenable. En PHP, la POO peut être encore étendue en étendant et en personnalisant les classes existantes.
Classes étendues
Utilisez le mot-clé extends
pour étendre une classe. La classe étendue hérite de toutes les propriétés et méthodes de la classe parent et peut ajouter de nouvelles propriétés et méthodes. extends
关键字可以扩展一个类。扩展后的类继承父类的所有属性和方法,并可以添加新属性和方法。
class BaseClass { protected $name; public function __construct($name) { $this->name = $name; } public function getName() { return $this->name; } } class ExtendedClass extends BaseClass { private $age; public function __construct($name, $age) { parent::__construct($name); $this->age = $age; } public function getAge() { return $this->age; } }
定制类
使用 implements
关键字可以定制一个类,让它实现一个或多个接口。接口定义了一组方法,该类必须实现这些方法。
interface MyInterface { public function doSomething(); } class MyClass implements MyInterface { public function doSomething() { // 具体实现 } }
实战案例
考虑一个抽象类 Shape
,它定义了一个 getArea()
方法。我们扩展此类以创建具体形状,例如 Circle
和 Rectangle
。
abstract class Shape { protected $color; public function __construct($color) { $this->color = $color; } abstract public function getArea(); } class Circle extends Shape { private $radius; public function __construct($color, $radius) { parent::__construct($color); $this->radius = $radius; } public function getArea() { return pi() * $this->radius ** 2; } } class Rectangle extends Shape { private $width; private $height; public function __construct($color, $width, $height) { parent::__construct($color); $this->width = $width; $this->height = $height; } public function getArea() { return $this->width * $this->height; } }
我们可以创建 Circle
和 Rectangle
对象并访问它们各自的 getArea()
rrreee
implements
pour personnaliser une classe afin qu'elle implémente une ou plusieurs interfaces. Une interface définit un ensemble de méthodes que la classe doit implémenter. 🎜rrreee🎜🎜Cas pratique🎜🎜🎜Considérons une classe abstraite Shape
, qui définit une méthode getArea()
. Nous étendons cette classe pour créer des formes concrètes telles que Circle
et Rectangle
. 🎜rrreee🎜Nous pouvons calculer dynamiquement la surface en créant des objets Circle
et Rectangle
et en accédant à leurs méthodes getArea()
respectives. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!