Maison > Article > développement back-end > Tutoriel d'utilisation de base de la classe abstraite php
Pour les programmeurs PHP, le point le plus difficile à maîtriser est l'application des classes abstraites PHP . En tant que novice, je n'ai pas réellement utilisé les connaissances orientées objet pour programmer, mais à l'avenir, j'utiliserai des cours pour encapsuler ou utiliser des interfaces pour développer des programmes dans divers formats modulaires. est inévitable
En langage naturel, nous comprenons les concepts abstraits comme une description large d'un objet, qui est une caractéristique commune pour un certain type d'objet. La même chose est vraie en PHP. Lorsque nous faisons abstraction d'une classe, nous pouvons indiquer le comportement général de la classe. Cette classe doit être un modèle, qui indique certains comportements que ses sous-méthodes doivent implémenter.
Définition de l'application de classe abstraite PHP :
abstract class ClassName{ }
Points clés de l'application de classe abstraite PHP :
1. Définissez certaines méthodes et les sous-classes doivent implémenter pleinement toutes les méthodes de cette abstraction
2. Les objets ne peuvent pas être créés à partir de classes abstraites , leur signification doit être étendue
3. Les classes abstraites ont généralement des méthodes abstraites, et il n'y a pas d'accolades dans les méthodes
Points clés de l'application des classes abstraites PHP :
1. Les méthodes abstraites n'ont pas besoin d'implémenter de fonctions spécifiques, et sont complétées par des sous-classes
2. Lorsqu'une sous-classe implémente une méthode d'une classe abstraite, la visibilité de la sous-classe doit être supérieur ou égal à la définition de la méthode abstraite
3. La méthode de la classe abstraite peut avoir des paramètres ou être vide
4. Si la méthode abstraite a des paramètres, alors l'implémentation de la sous-classe doit également avoir le même nombre de paramètres
Exemple d'application de classe abstraite PHP :
abstract public function_name(); //Notez qu'il n'y a pas d'accolades
Règles de classe abstraite PHP :
Tant qu'un La classe contient au moins une méthode abstraite, elle doit être déclarée comme une classe abstraite
Méthode abstraite, non Elle peut contenir une fonction corps
qui hérite de la classe abstraite Ceux qui implémentent la méthode abstraite. doit avoir le même niveau d'accès ou un niveau d'accès inférieur à celui de la méthode abstraite
sous-classe qui hérite de la classe abstraite. Sinon Si toutes les méthodes abstraites sont implémentées, alors la sous-classe sera également une classe abstraite
À titre de démonstration, implémentons un classe abstraite simple : calculer l'aire d'un rectangle. Ce rectangle peut être étendu à partir de la classe de forme.
Copier le code Le code est le suivant :
<?php abstract class Shape { abstract protected function get_area(); //和一般的方法不同的是,这个方法没有大括号 //你不能创建这个抽象类的实例:$Shape_Rect= new Shape(); } class Rectangle extends Shape{ private $width; private $height; function construct($width=0, $height=0){ $this->width=$width; $this->height=$height; } function get_area(){ echo ($this->width+$this->height)*2; } } $Shape_Rect = new Rectangle(20,30); $Shape_Rect->get_area(); ?>
Il s'agit également d'un exemple simple qui illustre essentiellement l'utilisation de classes abstraites dans PHP D'accord, je ne veux pas dire grand-chose d'autre. Personnellement, je pense que les classes abstraites sont généralement utilisées dans les grands projets, car je pense qu'elles ont trop de « règles » à respecter, ce qui les rend peu pratiques à utiliser ! Bien sûr, ce n'est que mon avis. Je voudrais dire quelque chose de plus. Les applications de classes abstraites PHP sont à héritage unique, ce qui signifie que vous ne pouvez hériter que d'une seule classe, mais pas d'une classe qui hérite de la classe A et de la classe B. Si vous souhaitez implémenter une telle fonction, vous Je dois utiliser une interface. Connaissances associées, je ne parlerai pas de la connaissance de l'interface PHP pour le moment ! En un mot : héritage unique et interfaces multiples !
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!