Maison > développement back-end > Problème PHP > Qu'est-ce que la méthode abstraite php

Qu'est-ce que la méthode abstraite php

藏色散人
Libérer: 2023-03-06 14:38:02
original
3466 Les gens l'ont consulté

La méthode abstraite php fait référence à une méthode définie dans une classe sans corps de méthode. L'absence de corps de méthode signifie qu'il n'y a pas d'accolades ni de contenu lors de la déclaration, mais directement dans le nom de la méthode lorsque. déclarer End par un point-virgule. De plus, lors de la déclaration d'une méthode abstraite, la méthode doit être modifiée avec le mot-clé "abstract".

Qu'est-ce que la méthode abstraite php

Recommandé : "Tutoriel vidéo PHP"

Méthodes abstraites et classes abstraites en php

1. Qu'est-ce qu'une méthode abstraite ?

Les méthodes que nous définissons dans la classe sans aucune méthode sont des méthodes abstraites. Le soi-disant corps sans méthode signifie qu'il n'y a pas d'accolades ni de contenu à l'intérieur lors de la déclaration, mais en ajoutant directement un point-virgule après le nom de la méthode lors de la déclaration. De plus, lors de la déclaration d'une méthode abstraite, la méthode doit également ajouter un mot-clé. . "abstrait" à modifier.

Par exemple :

abstract function fun1(); 
abstract function fun2();
Copier après la connexion

2. Qu'est-ce qu'une classe abstraite ?

Tant qu'il y a une méthode abstraite dans une classe, alors la classe est définie comme une classe abstraite. La classe abstraite doit également être modifiée avec le mot-clé "abstract" et il peut y avoir des méthodes non abstraites ; Attributs membres, mais tant qu'une méthode est abstraite, la classe doit être déclarée comme classe abstraite et décorée avec "abstract".

Par exemple :

abstract class demo{
var $test;
abstract function fun1();
abstract function fun2();
}
Copier après la connexion

3. Quel est le rôle des classes abstraites ?

Dans l'exemple ci-dessus, une classe abstraite "demo" est définie et modifiée avec "abstract". Dans cette classe, un attribut membre "$test" et deux méthodes abstraites "fun1" et "fun2" sont définies. . "Il existe également une méthode non abstraite fun3(); alors comment utiliser les classes abstraites ? Le point le plus important est que les classes abstraites ne peuvent pas produire d'objets d'instance, elles ne peuvent donc pas être utilisées directement.Nous avons mentionné à plusieurs reprises que les classes ne peuvent pas être utilisées directement.Nous utilisons des objets instanciés via des classes, donc les classes abstraites ne peuvent pas produire d'objets d'instance. l'utilité de déclarer une classe abstraite ?

Nous utilisons des méthodes abstraites comme modèles pour la surcharge de sous-classes. Définir une classe abstraite équivaut à définir une spécification. Cette spécification nécessite que les sous-classes soient conformes, et les sous-classes héritent des classes abstraites. classe selon les besoins de la sous-classe.

La sous-classe doit implémenter toutes les méthodes abstraites de la classe parent. Sinon, s'il y a encore des méthodes abstraites dans la sous-classe, alors la sous-classe est toujours une classe abstraite et ne peut pas être instanciée ; de la classe abstraite ? Qu'en est-il de l'héritage ?

Parce que parfois si nous voulons implémenter certaines fonctions, nous devons hériter d'une classe abstraite, sinon vous ne pourrez pas implémenter ces fonctions. Si vous héritez d'une classe abstraite, vous devez implémenter la méthode abstraite dans le fichier. classe;

Exemple :

abstract class mode{
  var $test;
  abstract function fun1();
  abstract function fun2();
  function fun2(){
    ....
  }
}
 
$mode = new mode(); //抽象类只能为产生实例对象,所以这样做是错的,实例化对象交给子类
class test extends mode{
   function fun1(){
    ....
   }
   
   function fun2(){
   ....
   }
}
$test = new test(); //子类可以实例化对象,因为实现了所有父类的抽象化方法
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal