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

Compréhension approfondie de la programmation orientée objet PHP : extension et personnalisation de la programmation orientée objet

王林
王林original
2024-06-04 11:26:04279parcourir

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.

Compréhension approfondie de la programmation orientée objet PHP : extension et personnalisation de la programmation orientée objet

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() 方法。我们扩展此类以创建具体形状,例如 CircleRectangle

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;
    }
}

我们可以创建 CircleRectangle 对象并访问它们各自的 getArea()rrreee

🎜Classe personnalisée🎜🎜🎜Utilisez le mot-clé 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn