recherche
Maisondéveloppement back-endtutoriel phpLa différence entre statique, final, interface et résumé en php

Cet article présente principalement les différences entre statique, final, interface et abstrait en PHP. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

final

.

Si une méthode de la classe parent est déclarée finale, la sous-classe ne peut pas remplacer la méthode. Si une classe est déclarée finale, elle ne peut pas être héritée.

Remarque : les propriétés ne peuvent pas être définies comme finales, seules les classes et les méthodes peuvent être définies comme finales.

statique

Les variables statiques peuvent être des variables locales ou des variables globales. Lorsqu'un segment de programme est exécuté, la variable statique ne disparaît pas dans la mémoire et sera définie la prochaine fois. C'est toujours la valeur précédente. Elle est souvent utilisée pour conserver la valeur précédente dans la récursion ou les sous-fonctions. Elle peut être utilisée pour définir des variables et des méthodes ; ceci est également utilisé dans le mode singleton ; Généralement, les attributs statiques sont utilisés pour enregistrer les données publiques des classes

2. Seules les propriétés statiques sont accessibles à l'intérieur des méthodes statiques, y compris celles de cette classe et de la classe parent

3. sans instancier d'objets

4. Pour accéder aux propriétés statiques au sein de cette classe, utilisez les mots-clés self ou static Les variables suivies doivent inclure $, telles que : self::$a ou static::$a

.

5. Accédez au parent Utilisez parent pour les attributs statiques de classe, tels que : parent::$name

6. Lorsque vous accédez à des variables ou des méthodes statiques en dehors de la classe, utilisez le nom de la classe pour y accéder directement sans instanciation. Tels que : Me::$pan et Me::abc()

abstract

classe abstraite classe abstraite

1. Une classe abstraite fait référence à une classe avec le mot-clé abstrait ajouté avant la classe et une méthode abstraite (le mot-clé abstrait ajouté avant le mot-clé fonction de la méthode de classe).

2. Les classes abstraites ne peuvent pas être instanciées directement. La classe abstraite définit uniquement (ou implémente partiellement) les méthodes requises par la sous-classe. Les sous-classes peuvent rendre concrète une classe abstraite en en héritant et en implémentant toutes les méthodes abstraites de la classe abstraite.

3. Si une sous-classe doit être instanciée, elle doit implémenter toutes les méthodes abstraites de la classe abstraite. Si la sous-classe n'implémente pas toutes les méthodes abstraites de la classe abstraite, alors la sous-classe est également une classe abstraite et doit être précédée du mot-clé abstract dans class et ne peut pas être instanciée.

4. Si la sous-classe implémente une méthode abstraite, alors le contrôle d'accès de la méthode abstraite dans la sous-classe ne peut pas être plus strict que le contrôle d'accès de la méthode abstraite dans la classe parent, c'est-à-dire (Classe parent A, sous-classe B)

 (1 ) Si abstract_func() dans A est déclaré public, alors la déclaration de abstract_func() dans B ne peut être que publique, non protégée ou privée

(2) Si abstract_func() dans A est déclaré comme protégé, alors B La déclaration de abstract_func() dans A peut être publique ou protégée, mais ne peut pas être privée

 (3) Si abstract_func() dans A est déclarée comme privée, elle ne peut pas être définie comme privé! (

Erreur fatale

 : La fonction abstraite A::abstract_func() ne peut pas être déclarée privée)interface

1. Les classes abstraites fournissent des normes pour une implémentation concrète, tandis que les interfaces sont de purs modèles. Les interfaces définissent uniquement les fonctions, pas le contenu de l'implémentation. Les interfaces sont déclarées avec le mot-clé interface.

2. L'interface est complètement abstraite. Elle ne peut déclarer que des méthodes et uniquement des méthodes publiques. Elle ne peut pas déclarer de méthodes privées et protégées, ne peut pas définir de corps de méthode et ne peut pas déclarer de variables d'instance.

3. L'interface peut déclarer des variables constantes. Mais placer des variables constantes dans l'interface viole le but de son existence en tant qu'interface et confond également les différentes valeurs de l'interface et des classes. Si vous en avez vraiment besoin, vous pouvez le mettre dans la classe abstraite ou la classe correspondante.

4. Toute classe qui implémente une interface doit implémenter toutes les méthodes définies dans l'interface, sinon la classe doit être déclarée abstraite.

5. Une classe peut implémenter une interface en utilisant le mot clé Implements dans sa déclaration. Après cela, le processus spécifique d'implémentation de l'interface est le même que l'héritage d'une classe abstraite qui ne contient que des méthodes abstraites.

6. Une classe peut hériter d'une classe parent et implémenter n'importe quel nombre d'interfaces en même temps. La clause extends doit précéder la clause Implements. PHP ne prend en charge que l'héritage d'une classe parent, le mot-clé extends ne peut donc être suivi que d'un nom de classe.

7. Une interface ne peut pas implémenter une autre interface, mais peut hériter de plusieurs

3. Similitudes et différences entre les classes abstraites et les interfaces

1 Similitudes :

(1) Les deux C'est un. classe abstraite et ne peut pas être instanciée.

(2) Les classes d'implémentation d'interface et les sous-classes de classe abstraite doivent implémenter les méthodes abstraites déclarées.

2. Différences :

 (1) L'interface doit être implémentée, en utilisant Implements , et la classe abstraite doit être héritée, en utilisant extends .

 (2) Une classe peut implémenter plusieurs interfaces, mais une classe ne peut hériter que d'une seule classe abstraite.

(3) L'interface met l'accent sur la mise en œuvre de fonctions spécifiques, tandis que la classe abstraite met l'accent sur la relation de propriété.

 (4) Bien que la classe d'implémentation d'interface et les sous-classes de la classe abstraite doivent implémenter la méthode abstraite correspondante, les formes d'implémentation sont différentes. Chaque méthode dans l'interface est une méthode abstraite, qui est uniquement déclarée (déclaration, pas de corps de méthode) et la classe d'implémentation doit l'implémenter. Les sous-classes de la classe abstraite peuvent être implémentées de manière sélective.

Ce choix a deux significations :

a) Toutes les méthodes de la classe abstraite ne sont pas abstraites. Seules les méthodes avec abstract sont abstraites et les sous-classes doivent les implémenter. Pour les méthodes sans résumé, le corps de la méthode doit être défini dans la classe abstraite ;

b) Lorsqu'une sous-classe de la classe abstraite en hérite, elle peut directement hériter ou remplacer les méthodes non abstraites ; Vous pouvez choisir de l'implémenter, ou vous pouvez le laisser à ses sous-classes, mais cette classe doit également être déclarée comme classe abstraite. Puisqu’il s’agit d’une classe abstraite, elle ne peut bien sûr pas être instanciée.

 (5) La classe abstraite est l'intermédiaire entre l'interface et la classe. la classe abstraite joue un rôle de connexion dans l'interface et la classe.

D'une part, la classe abstraite est abstraite et peut déclarer des méthodes abstraites pour standardiser les fonctions que les sous-classes doivent implémenter

D'autre part, elle peut définir un corps de méthode par défaut pour l'utilisation des sous-classes ; directement ou remplacez-le. De plus, il peut définir ses propres variables d'instance à utiliser par les sous-classes via l'héritage.

(6) Le mot-clé abstract ne peut pas être ajouté avant que la méthode abstraite dans l'interface ne soit utilisée. La méthode implicite par défaut est la méthode abstraite, et le mot-clé final ne peut pas être ajouté pour empêcher l'héritage des méthodes abstraites. Dans une classe abstraite, abstract doit être ajouté avant la méthode abstraite pour indiquer qu'elle est explicitement déclarée comme méthode abstraite.

(7) Les méthodes abstraites dans les interfaces sont publiques par défaut et ne peuvent être publiques qu'elles ne peuvent pas être modifiées avec des modificateurs privés ou protégés. Les méthodes abstraites des classes abstraites peuvent être modifiées avec public et protected, mais ne peuvent pas être modifiées avec private.

3. Occasions d'application de l'interface

 (1) Les classes ont besoin d'interfaces spécifiques pour la coordination, quelle que soit la manière dont elles sont mises en œuvre.

 (2) Il existe comme un identifiant qui peut réaliser une fonction spécifique, ou il peut être un pur identifiant sans aucune méthode d'interface.

 (3) Il est nécessaire de traiter un groupe de classes comme une seule classe, et l'appelant ne contacte ce groupe de classes que via l'interface.

 (4) Il est nécessaire d'implémenter plusieurs fonctions spécifiques, et ces fonctions peuvent n'avoir aucun lien.

4. Occasions d'application de la classe abstraite

En un mot, vous pouvez l'utiliser lorsque vous avez besoin à la fois d'une interface unifiée et de variables d'instance ou de méthodes par défaut. Les plus courants sont :

(1) Définir un ensemble d'interfaces, mais ne pas vouloir forcer chaque classe d'implémentation à implémenter toutes les interfaces. Vous pouvez utiliser une classe abstraite pour définir un ensemble de corps de méthode, ou même des corps de méthode vides, puis laisser les sous-classes choisir les méthodes qui les intéressent.

 (2) Dans certains cas, les interfaces pures ne peuvent à elles seules satisfaire la coordination entre les classes. Des variables représentant les états de la classe sont également nécessaires pour distinguer différentes relations. Le rôle intermédiaire de l’abstrait peut très bien y répondre.

 (3) Standardise un ensemble de méthodes mutuellement coordonnées, dont certaines sont communes, indépendantes de l'état et peuvent être partagées sans qu'il soit nécessaire que les sous-classes les implémentent séparément tandis que d'autres méthodes nécessitent que chaque sous-classe les implémente ; selon son propre état spécifique pour réaliser des fonctions spécifiques.

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

tri php en fonction de la longitude et de la latitude et filtrage des segments de distance en fonction de la longitude et de la latitude

Le différence entre Define et Const en PHP

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
PHP en action: Exemples et applications du monde réelPHP en action: Exemples et applications du monde réelApr 14, 2025 am 12:19 AM

PHP est largement utilisé dans le commerce électronique, les systèmes de gestion de contenu et le développement d'API. 1) E-commerce: Utilisé pour la fonction de panier et le traitement des paiements. 2) Système de gestion du contenu: utilisé pour la génération de contenu dynamique et la gestion des utilisateurs. 3) Développement des API: Utilisé pour le développement de l'API RESTful et la sécurité de l'API. Grâce à l'optimisation des performances et aux meilleures pratiques, l'efficacité et la maintenabilité des applications PHP sont améliorées.

PHP: Création de contenu Web interactif avec facilitéPHP: Création de contenu Web interactif avec facilitéApr 14, 2025 am 12:15 AM

PHP facilite la création de contenu Web interactif. 1) Générez dynamiquement du contenu en intégrant HTML et affichez-les en temps réel en fonction des données d'entrée ou de base de données utilisateur. 2) Traitez la soumission du formulaire et générez une sortie dynamique pour garantir que HTMLSpecialChars est utilisé pour empêcher les XS. 3) Utilisez MySQL pour créer un système d'enregistrement des utilisateurs, et utilisez des instructions Password_hash et du prétraitement pour améliorer la sécurité. La maîtrise de ces techniques améliorera l'efficacité du développement Web.

PHP et Python: comparaison de deux langages de programmation populairesPHP et Python: comparaison de deux langages de programmation populairesApr 14, 2025 am 12:13 AM

PHP et Python ont chacun leurs propres avantages et choisissent en fonction des exigences du projet. 1.Php convient au développement Web, en particulier pour le développement rapide et la maintenance des sites Web. 2. Python convient à la science des données, à l'apprentissage automatique et à l'intelligence artificielle, avec syntaxe concise et adaptée aux débutants.

La pertinence durable de PHP: est-elle toujours vivante?La pertinence durable de PHP: est-elle toujours vivante?Apr 14, 2025 am 12:12 AM

PHP est toujours dynamique et occupe toujours une position importante dans le domaine de la programmation moderne. 1) La simplicité de PHP et le soutien communautaire puissant le rendent largement utilisé dans le développement Web; 2) sa flexibilité et sa stabilité le rendent exceptionnelle dans la gestion des formulaires Web, des opérations de base de données et du traitement de fichiers; 3) PHP évolue et optimise constamment, adapté aux débutants et aux développeurs expérimentés.

Statut actuel de PHP: un regard sur les tendances de développement WebStatut actuel de PHP: un regard sur les tendances de développement WebApr 13, 2025 am 12:20 AM

Le PHP reste important dans le développement Web moderne, en particulier dans la gestion de contenu et les plateformes de commerce électronique. 1) PHP a un écosystème riche et un fort soutien-cadre, tels que Laravel et Symfony. 2) L'optimisation des performances peut être obtenue via Opcache et Nginx. 3) PHP8.0 introduit le compilateur JIT pour améliorer les performances. 4) Les applications natives dans le cloud sont déployées via Docker et Kubernetes pour améliorer la flexibilité et l'évolutivité.

PHP vs autres langues: une comparaisonPHP vs autres langues: une comparaisonApr 13, 2025 am 12:19 AM

PHP convient au développement Web, en particulier dans le développement rapide et le traitement du contenu dynamique, mais n'est pas bon dans les applications de la science des données et de l'entreprise. Par rapport à Python, PHP présente plus d'avantages dans le développement Web, mais n'est pas aussi bon que Python dans le domaine de la science des données; Par rapport à Java, PHP fonctionne moins bien dans les applications au niveau de l'entreprise, mais est plus flexible dans le développement Web; Par rapport à JavaScript, PHP est plus concis dans le développement back-end, mais n'est pas aussi bon que JavaScript dans le développement frontal.

PHP vs Python: fonctionnalités et fonctionnalités de basePHP vs Python: fonctionnalités et fonctionnalités de baseApr 13, 2025 am 12:16 AM

PHP et Python ont chacun leurs propres avantages et conviennent à différents scénarios. 1.PHP convient au développement Web et fournit des serveurs Web intégrés et des bibliothèques de fonctions riches. 2. Python convient à la science des données et à l'apprentissage automatique, avec une syntaxe concise et une bibliothèque standard puissante. Lors du choix, il doit être décidé en fonction des exigences du projet.

PHP: un langage clé pour le développement WebPHP: un langage clé pour le développement WebApr 13, 2025 am 12:08 AM

PHP est un langage de script largement utilisé du côté du serveur, particulièrement adapté au développement Web. 1.Php peut intégrer HTML, traiter les demandes et réponses HTTP et prend en charge une variété de bases de données. 2.PHP est utilisé pour générer du contenu Web dynamique, des données de formulaire de traitement, des bases de données d'accès, etc., avec un support communautaire solide et des ressources open source. 3. PHP est une langue interprétée, et le processus d'exécution comprend l'analyse lexicale, l'analyse grammaticale, la compilation et l'exécution. 4.PHP peut être combiné avec MySQL pour les applications avancées telles que les systèmes d'enregistrement des utilisateurs. 5. Lors du débogage de PHP, vous pouvez utiliser des fonctions telles que error_reportting () et var_dump (). 6. Optimiser le code PHP pour utiliser les mécanismes de mise en cache, optimiser les requêtes de base de données et utiliser des fonctions intégrées. 7

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

MantisBT

MantisBT

Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux

DVWA

DVWA

Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

mPDF

mPDF

mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) ​​et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),