Maison >développement back-end >tutoriel php >Comment utiliser la classe abstraite php ? Explication détaillée de l'utilisation de la définition de classe abstraite php

Comment utiliser la classe abstraite php ? Explication détaillée de l'utilisation de la définition de classe abstraite php

伊谢尔伦
伊谢尔伦original
2017-07-03 09:05:231750parcourir

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 :

Classe abstraite 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 dans 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 de classe abstraite PHP :

1. Méthodes abstraites ne doivent pas implémenter de fonctions spécifiques 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érieure ou égale à la définition de la méthode abstraite

3. La méthode 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

PHP Exemple d'application de classe abstraite :

abstract public function_name(); //Notez qu'il n'y a pas d'accolades

Règles de classe abstraite PHP :

  1. Une certaine classe doit seulement être au moins Si elle contient une méthode abstraite, elle doit être déclarée comme une classe abstraite

  2. méthode abstraite, et elle ne peut pas contenir

    fonction corps

  3. héritage Les sous-classes des classes abstraites qui implémentent des méthodes abstraites doivent avoir le même niveau d'accès ou un niveau inférieur à celui de la méthode abstraite

  4. Hériter des sous-classes de classes abstraites. Si elles n'implémentent pas toutes les méthodes abstraites, alors cette sous-classe est aussi une classe abstraite

À titre de démonstration, implémentons une classe abstraite simple : calculons l'aire. d'un rectangle. Ce rectangle peut être étendu à partir de la classe de forme.

<?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();   
?>
C'est aussi un exemple simple, qui illustre essentiellement l'utilisation de classes abstraites en PHP, je ne veux pas en dire plus sur le reste. 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 classe abstraite 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!

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