Maison développement back-end tutoriel php Comprendre les classes, objets, classes abstraites et interfaces PHP dans un seul article

Comprendre les classes, objets, classes abstraites et interfaces PHP dans un seul article

Jan 22, 2020 am 12:07 AM
接口

Comprendre les classes, objets, classes abstraites et interfaces PHP dans un seul article

Classes et objets : classes abstraites, interfaces

Classes et interfaces abstraites : les classes et interfaces abstraites sont spéciales et ne peuvent pas être instanciées.

Classe abstraite :

Les méthodes abstraites dans les classes abstraites sont des méthodes vides sans implémentation concrète. Les classes abstraites peuvent être utilisées pour définir des définitions fonctionnelles pour les sous-classes, de sorte que les classes abstraites obligent les développeurs à hériter uniquement d'une classe parent spécifique

, puis à compléter ce dont ils ont besoin dans les fonctions spécifiques à la sous-classe héritée.

Le format syntaxique pour définir une classe abstraite est le suivant :

abstract class 类名称{
  //抽象类的成员变量列表
  abstract function 成员方法1([参数1],[参数2],……);
  abstract function 成员方法2([参数1],[参数2],……);
  //其他代码
}
Copier après la connexion

Les classes abstraites sont similaires aux classes ordinaires et ont également attributs de membre et méthodes de membre, la différence est que les classes abstraites ne peuvent pas être instanciées.

Ce qui suit définit une classe abstraite simple et complète :

abstract class MyClass{ //定义抽象类
  abstract protected function myFunction($arg); //定义抽象方法
}
Copier après la connexion

PS : La définition d'une classe abstraite doit contenir au moins un mot-clé abstrait modifié et aucune méthode abstraite d'implémentation .

Le processus d'implémentation des classes abstraites :

Dans une classe abstraite, non seulement des méthodes abstraites peuvent être définies, mais certaines méthodes membres qui peuvent remplir des fonctions spécifiées peuvent également être définies comme des classes ordinaires. les sous-classes héritent Après avoir abstrait la classe, vous pouvez

référencer directement ces méthodes membres qui peuvent compléter les fonctions spécifiées.

class 子类名称 extends 抽象类名称{
  //子类的成员变量列表
  
  function 抽象方法名称([参数1],[参数2],……){
      //抽象方法的具体实现
  }
  //其他代码
 }
Copier après la connexion

PS : Lorsqu'une classe hérite d'une classe abstraite, elle doit contenir toutes les méthodes définies dans la classe abstraite, sinon une erreur se produira lors de l'exécution.

Ce qui suit est un exemple d'implémentation d'une classe abstraite :

abstract class Study{
  abstract function printStudy($name,$lang); //定义一个抽象方法
}
 
class OneStudy extends Study { //定义子类继承于父类
  function printStudy($name,$lang){ //抽象方法的具体实现
      echo $name."正在整理".$lang."……";
  }
 }
 
class TwoStudy extends Study {
  function printStudy($name,$lang){
      echo $name."正在整理".$lang."……";
    }
}
  $first=new OneStudy();
  $first->printStudy("大兵","PHP基础知识");
  echo "";
  $second=new TwoStudy();
  $second->printStudy("小兵","SEO基础知识");
Copier après la connexion

Le résultat de l'exécution de ce programme est :

Ding Bing est trier les connaissances de base de PHP... …

Xiaobing est en train de trier les bases du référencement...

Définir l'interface :

Une interface est une collection de déclarations de méthodes membres, qui ne contient que quelques méthodes membres vides ou certaines constantes de classe. Ces méthodes membres vides seront implémentées par la classe qui implémente l'interface.

Pour définir une interface, vous devez utiliser le mot-clé interface. Le format de syntaxe est le suivant :

interface 接口名称{
  //类常量列表
  function 成员方法1([参数1],[参数2],……);
  function 成员方法2([参数1],[参数2],……);
  //其他代码
}
Copier après la connexion

L'interface ne pouvant pas être instanciée, il n'y a pas de méthode de construction ni de méthode de déconstruction dans le interface.Il suffit de donner un ensemble de déclarations de méthodes membres à implémenter.

Ce qui suit définit une interface simple et complète :

interface class MyClass{ //定义接口
  public function myFunction($arg); //定义方法
}
Copier après la connexion

Le processus de mise en œuvre de l'interface :

Similaire à un classe, une interface Peut également être héritée. Une interface peut hériter de plusieurs interfaces, mais une interface ne peut pas hériter d'une classe. Pour implémenter une interface, utilisez le mot-clé Implements.

Lors de l'utilisation d'une classe pour implémenter une interface, elle doit contenir au moins toutes les méthodes définies dans l'interface, sinon une erreur se produira au moment de l'exécution.

Ce qui suit est un exemple d'implémentation d'une interface :

interface IName{ //定义接口IName
  function setName($name);
  function getName();
  }
  interface IAge{ //定义接口IAge
  function setAge($age);
  function getAge();
  }
  class DaBing implements IName,IAge{ //定义实现接口的类
  private $name;
  private $age;
  function setName($name){
  $this->name=$name;
  }
  function getName(){
  echo "姓名:".$this->name." ";
  }
  function setAge($age){
  $this->age=$age;
  }
  function getAge(){
  echo "年龄:".$this->age;
  }
  }
  $obj=new DaBing();
  $obj->setName("大兵");
  $obj->getName();
  $obj->setAge(25);
  $obj->getAge();
Copier après la connexion

Le résultat de l'exécution du programme est :

Nom : Soldat Âge : 25

Résumé classes et interfaces Différence :

L'utilisation des interfaces se fait grâce au mot-clé Implements. Les opérations sur les classes abstraites sont implémentées en héritant du mot-clé extends.

Les interfaces n'ont pas de données membres, mais les classes abstraites ont des données membres et les classes abstraites peuvent réaliser la fermeture des données.

Les interfaces n'ont pas de constructeurs, tandis que les classes abstraites peuvent avoir des constructeurs.

Les méthodes dans les interfaces sont de type public, tandis que les méthodes dans les classes abstraites peuvent être modifiées avec private, protected ou public.

Une classe peut implémenter plusieurs interfaces en même temps, mais une classe ne peut hériter que d'une seule classe abstraite.

Il ne peut pas y avoir de code d'implémentation pour les méthodes membres dans les interfaces, mais il peut y avoir un code d'implémentation pour les méthodes membres dans les classes abstraites.

PS : Dans une application, si vous avez besoin d'ajouter plus de comportements à une certaine classe, vous pouvez définir une interface pour combiner ces comportements. Si vous devez réutiliser les données et le comportement d'un certain élément, vous devez définir une classe abstraite pour encapsuler ces variables et fonctions.


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 de ce site Web
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

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.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Quelles sont les interfaces internes d'une carte mère d'ordinateur ? Introduction recommandée aux interfaces internes d'une carte mère d'ordinateur ? Quelles sont les interfaces internes d'une carte mère d'ordinateur ? Introduction recommandée aux interfaces internes d'une carte mère d'ordinateur ? Mar 12, 2024 pm 04:34 PM

Lorsque nous assemblons l'ordinateur, bien que le processus d'installation soit simple, nous rencontrons souvent des problèmes de câblage. Souvent, les utilisateurs branchent par erreur la ligne d'alimentation du radiateur du processeur au SYS_FAN. Bien que le ventilateur puisse tourner, il peut ne pas fonctionner lorsque le ventilateur fonctionne. L'ordinateur est allumé. Il y aura une erreur F1 "CPUFanError", qui empêchera également le refroidisseur du processeur d'ajuster intelligemment la vitesse. Partageons les connaissances communes sur les interfaces CPU_FAN, SYS_FAN, CHA_FAN et CPU_OPT sur la carte mère de l'ordinateur. Science populaire sur les interfaces CPU_FAN, SYS_FAN, CHA_FAN et CPU_OPT sur la carte mère de l'ordinateur 1. CPU_FANCPU_FAN est une interface dédiée pour le radiateur du processeur et fonctionne à 12 V.

Paradigmes de programmation et modèles de conception courants en langage Go Paradigmes de programmation et modèles de conception courants en langage Go Mar 04, 2024 pm 06:06 PM

En tant que langage de programmation moderne et efficace, le langage Go possède de riches paradigmes de programmation et des modèles de conception qui peuvent aider les développeurs à écrire du code maintenable de haute qualité. Cet article présentera les paradigmes de programmation et les modèles de conception courants dans le langage Go et fournira des exemples de code spécifiques. 1. Programmation orientée objet Dans le langage Go, vous pouvez utiliser des structures et des méthodes pour implémenter une programmation orientée objet. En définissant une structure et des méthodes de liaison à la structure, les fonctionnalités orientées objet d'encapsulation de données et de liaison de comportement peuvent être obtenues. packagemaini

Introduction aux interfaces PHP et comment les définir Introduction aux interfaces PHP et comment les définir Mar 23, 2024 am 09:00 AM

Introduction à l'interface PHP et à sa définition. PHP est un langage de script open source largement utilisé dans le développement Web. Il est flexible, simple et puissant. En PHP, une interface est un outil qui définit des méthodes communes entre plusieurs classes, réalisant le polymorphisme et rendant le code plus flexible et réutilisable. Cet article présentera le concept des interfaces PHP et comment les définir, et fournira des exemples de code spécifiques pour démontrer leur utilisation. 1. Concept d'interface PHP L'interface joue un rôle important dans la programmation orientée objet, définissant l'application de classe

Solution à NotImplementedError() Solution à NotImplementedError() Mar 01, 2024 pm 03:10 PM

La raison de l'erreur est en python. La raison pour laquelle NotImplementedError() est lancée dans Tornado peut être due au fait qu'une méthode ou une interface abstraite n'est pas implémentée. Ces méthodes ou interfaces sont déclarées dans la classe parent mais non implémentées dans la classe enfant. Les sous-classes doivent implémenter ces méthodes ou interfaces pour fonctionner correctement. Comment résoudre ce problème consiste à implémenter la méthode abstraite ou l'interface déclarée par la classe parent dans la classe enfant. Si vous utilisez une classe pour hériter d'une autre classe et que vous voyez cette erreur, vous devez implémenter toutes les méthodes abstraites déclarées dans la classe parent dans la classe enfant. Si vous utilisez une interface et que vous voyez cette erreur, vous devez implémenter toutes les méthodes déclarées dans l'interface dans la classe qui implémente l'interface. Si vous n'êtes pas sûr de savoir lequel

Application d'interfaces et de classes abstraites dans les modèles de conception en Java Application d'interfaces et de classes abstraites dans les modèles de conception en Java May 01, 2024 pm 06:33 PM

Les interfaces et les classes abstraites sont utilisées dans les modèles de conception pour le découplage et l'extensibilité. Les interfaces définissent les signatures des méthodes, les classes abstraites fournissent une implémentation partielle et les sous-classes doivent implémenter des méthodes non implémentées. Dans le modèle de stratégie, l'interface est utilisée pour définir l'algorithme, et la classe abstraite ou la classe concrète assure l'implémentation, permettant une commutation dynamique des algorithmes. Dans le modèle d'observateur, les interfaces sont utilisées pour définir le comportement de l'observateur, et les classes abstraites ou concrètes sont utilisées pour s'abonner et publier des notifications. Dans le modèle d'adaptateur, les interfaces sont utilisées pour adapter les classes existantes ou les classes concrètes peuvent implémenter des interfaces compatibles, permettant une interaction avec le code d'origine.

Aperçu du système Hongmeng : mesure réelle des fonctions et expérience d'utilisation Aperçu du système Hongmeng : mesure réelle des fonctions et expérience d'utilisation Mar 23, 2024 am 10:45 AM

En tant que nouveau système d'exploitation lancé par Huawei, le système Hongmeng a fait sensation dans l'industrie. En tant que nouvelle tentative de Huawei après l'interdiction américaine, le système Hongmeng suscite de grands espoirs et attentes. Récemment, j'ai eu la chance d'acquérir un téléphone mobile Huawei équipé du système Hongmeng. Après une période d'utilisation et de tests réels, je partagerai quelques tests fonctionnels et une expérience d'utilisation du système Hongmeng. Tout d’abord, jetons un coup d’œil à l’interface et aux fonctions du système Hongmeng. Le système Hongmeng adopte le style de conception propre à Huawei dans son ensemble, qui est simple, clair et fluide. Sur le bureau, divers

Implémentation de classe interne d'interfaces et de classes abstraites en Java Implémentation de classe interne d'interfaces et de classes abstraites en Java Apr 30, 2024 pm 02:03 PM

Java permet de définir des classes internes au sein d'interfaces et de classes abstraites, offrant ainsi une flexibilité pour la réutilisation et la modularisation du code. Les classes internes des interfaces peuvent implémenter des fonctions spécifiques, tandis que les classes internes des classes abstraites peuvent définir des fonctions générales et les sous-classes fournissent des implémentations concrètes.

Interfaces Java et classes abstraites : révéler la connexion interne entre elles Interfaces Java et classes abstraites : révéler la connexion interne entre elles Mar 04, 2024 am 09:34 AM

Interface L'interface définit des méthodes abstraites et des constantes en Java. Les méthodes de l'interface ne sont pas implémentées, mais sont fournies par la classe qui implémente l'interface. L'interface définit un contrat qui exige que la classe d'implémentation fournisse des implémentations de méthodes spécifiées. Déclarez l'interface : publicinterfaceExampleInterface{voiddoSomething();intgetSomething();} Classe abstraite Une classe abstraite est une classe qui ne peut pas être instanciée. Il contient un mélange de méthodes abstraites et non abstraites. Semblables aux interfaces, les méthodes abstraites des classes abstraites sont implémentées par des sous-classes. Cependant, les classes abstraites peuvent également contenir des méthodes concrètes, qui fournissent des implémentations par défaut. Déclarer la classe abstraite : publicabstractcl

See all articles