Explication détaillée de la définition et de l'utilisation des règles des classes abstraites et des méthodes abstraites en PHP

伊谢尔伦
Libérer: 2023-03-12 12:28:01
original
2349 Les gens l'ont consulté

Dans le langage orienté objet (POO), une classe peut avoir une ou plusieurs sous-classes, et chaque classe a au moins une méthode publique comme interface d'accès au code externe . Les méthodes abstraites sont introduites pour faciliter l'héritage. Voyons maintenant comment les classes abstraites et les méthodes abstraites sont définies respectivement et leurs caractéristiques.

Qu'est-ce qu'une méthode abstraite ? La méthode que nous définissons dans la classe avec uniquement le nom de la méthode et aucun corps de méthode est une méthode abstraite. Ce qu'on appelle l'absence de corps de méthode signifie qu'il n'y a pas d'accolades ni de contenu dans la méthode lorsqu'elle est déclarée. est déclaré directement, un point-virgule est ajouté après le nom de la méthode, De plus, lors de la déclaration d'une méthode abstraite, ajoutez un mot-clé "abstract" pour la modifier.

1. Mot-clé abstrait : abstract

Abstrait signifie qu'il ne peut pas être expliqué exactement, mais qu'il a un certain concept ou nom. Pour déclarer une classe ou une méthode abstraite en PHP, nous devons utiliser le. mot-clé abstrait.

2. Définition des méthodes abstraites et des classes abstraites

Si au moins une méthode dans une classe est abstraite, on l'appelle une classe abstraite. Donc, si vous définissez une classe abstraite, définissez d'abord la méthode abstraite.

Le code est le suivant :

abstract class class1{                                            
   abstract function fun1(); 
   ……
}
Copier après la connexion

1 Il y a au moins une méthode abstraite dans la classe
2 Les méthodes abstraites ne sont pas autorisées à avoir {}.
3. Devant la méthode abstraite Il faut ajouter du résumé


3. Règles d'utilisation des classes et méthodes abstraites

Plusieurs caractéristiques des classes abstraites :

1. Ne peut pas être instancié. Ne peut être hérité que

2. Toutes les méthodes abstraites doivent être surchargées dans la classe dérivée héritée pour instancier

La déclaration sur l'abstrait. méthodes est la suivante :

Le code est le suivant :

<?php
abstract function fun1();
?>
Copier après la connexion


Qu'est-ce qu'une classe abstraite ? Tant qu'une méthode dans une classe est une méthode abstraite, alors la classe doit être définie comme une classe abstraite. Les classes abstraites doivent également être modifiées avec le mot-clé "abstract". Les classes abstraites ne peuvent pas instancier des objets, donc les méthodes abstraites sont utilisées comme modèles pour la surcharge des méthodes de sous-classe, et toutes les méthodes de la classe abstraite héritée doivent être implémentées.

Les classes abstraites et les exemples d'implémentation de classes abstraites sont les suivantes :

Le code est le suivant :

<?php
abstract class User{  //定义抽象类
    abstract protected function getUser(); //定义抽象方法
    public function print_content(){
        print $this->getUser();
    }
}
class vipUser extends User{
    protected function getUser(){
        return "抽象类与抽象方法www.jb51.net";
    }
}
$user=new vipUser(); //实例化子类
$user->print_content(); //抽象类与抽象方法
?>
Copier après la connexion

Remarque : Lorsqu'une classe abstraite hérite d'une autre classe abstraite ( le but est une extension d'une classe abstraite) et ne peut pas remplacer la méthode abstraite de la classe parent.

En PHP5.1, les méthodes abstraites statiques sont prises en charge dans les classes abstraites. Dans l’exemple ci-dessous, nous voyons que des méthodes abstraites statiques peuvent être déclarées. Lors de l’implémentation de cette méthode, il doit s’agir d’une méthode statique.

Le code est le suivant :

<?php
abstract class User{
 protected static  $sal=0;
 static abstract function getSal();
 static abstract function setSal($sal); 
}
class VipUser extends User{
 static function getSal(){
  return self::$sal;
 }
 static function setSal($sal){
  self::$sal=$sal;
 }
}
VipUser::setSal(100);
echo "you sal is www.jb51.net " . VipUser::getSal();
?>
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