


Explication détaillée des interfaces, des classes abstraites et des différences entre les interfaces et les classes abstraites en PHP
En php, les classes abstraites d'interface, Final et Static sont assez simples, particulièrement utiles dans l'architecture de sites Web à grande échelle. Aujourd'hui, nous examinerons un article sur les exemples de classes abstraites de php. , Final et Statique.
1. Interface
(1) L'utilisation de l'interface se fait via le mot-clé Implements
(2) L'interface ne peut pas définir de variables membres (y compris les variables statiques de classe), mais peut définir des constantes
(3) Les sous-classes doivent implémenter toutes les méthodes définies par l'interface
(4) L'interface peut uniquement définir mais pas implémenter la méthode
(5) L'interface n'a pas de constructeur
( 6) Méthodes dans l'interface Et la classe qui l'implémente est de type public par défaut
2 Classe abstraite
(1) L'utilisation de la classe abstraite se fait via le mot-clé extends
. (2) Il ne peut pas être instancié, vous pouvez définir les méthodes que la sous-classe doit implémenter
(3) La sous-classe doit définir toutes les méthodes abstraites de la classe parent, et le contrôle d'accès de ces méthodes doit être le même (ou plus détendu) comme dans la classe parent
(4) S'il y a une méthode abstraite dans une classe, la classe doit être définie comme une classe abstraite
(5) Une classe abstraite peut avoir un constructeur
(6 ) Les méthodes d'une classe abstraite peuvent être modifiées avec private, protected et public.
(7) Une classe peut implémenter plusieurs interfaces en même temps, mais une classe ne peut hériter que d'une seule classe abstraite.
3. Classe/méthode finale
(1) La classe finale ne peut pas être héritée
(2) La méthode finale ne peut pas être remplacée
4 Classe/méthode statique
(1) Impossible. être instancié Classer et accéder directement à
(2) Les propriétés statiques ne sont pas accessibles aux objets via l'opérateur -> Utilisez la méthode :: pour appeler
exemple
<?php # 接口 interface Human{ const TEST_CONST = "test const"; // 定义常量 // public $v; // error,不能定义变量 // static $count; // error,不能定义变量 public function speak(); public function walk(); public function run(); } # 抽象类 abstract class Father implements Human{ public function construct(){ echo "father init n"; } abstract public function walk(); // 抽象方法 public function speak(){ echo "father speak skill n"; } public function run(){ echo "father run skill n"; } } # 非抽象类 class Mother implements Human{ public function construct(){ echo "mother init n"; } # 这里必须实现walk方法 public function walk(){ echo "mother walk skill n"; } public function speak(){ echo "mother speak skill n"; } public function run(){ echo "mother run skill n"; } } class Son extends Father{ public function walk(){ echo "son walk skill. n"; } public function speak($name = ''){ echo "son: ". $name ." speak skill. n"; } # 访问控制必须和父类中一样(或者更为宽松) protected function sport(){ echo "son sport skill. n"; } final public function notTeach(){ echo 'son has not to teach skill'; } } class Daughter extends Mother{ public function run($name = ''){ echo "daughter run skill. n"; } } final class GrandChild extends Son{ # 访问控制必须和父类中一样(或者更为宽松) public function sport(){ echo "GrandChild sport skill. n"; } # Cannot override final method Son::notTeach() // public function notTeach(){} // error } # Class Orphan may not inherit from final class (GrandChild) // class Orphan extends GrandChild{} // error $son = new Son(); $son->speak("Suly"); $daughter = new Daughter(); $daughter->run('Lily'); $grandChild = new GrandChild(); $grandChild->sport();
<.> La différence entre les classes abstraites et les interfaces
1. L'utilisation des interfaces se fait via le mot clé Implements. L'utilisation de classes abstraites se fait via le mot-clé extends. Bien entendu, les interfaces peuvent également être héritées via le mot-clé extends.2. Les variables membres (y compris les variables statiques de classe) ne peuvent pas être déclarées dans l'interface, mais les constantes de classe peuvent être déclarées. Différents types de variables membres peuvent être déclarés dans des classes abstraites pour implémenter l'encapsulation des données. (De plus, les variables membres de l'interface JAVA doivent être déclarées comme type final statique public)
3. L'interface n'a pas de constructeur, mais la classe abstraite peut avoir un constructeur.
Classe ou interface abstraiteSi vous souhaitez créer un modèle qui sera adopté par certains objets étroitement liés, vous pouvez utiliser des classes abstraites. Utilisez des interfaces si vous souhaitez créer des fonctionnalités qui seront adoptées par un certain nombre d'objets non liés.
Si le comportement doit être hérité de plusieurs sources, utilisez des interfaces.
Si vous savez que toutes les classes partageront une implémentation de comportement commune, utilisez une classe abstraite et implémentez ce comportement en son sein.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Liaison statique (statique: :) implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.
