Maison > développement back-end > Problème PHP > Que sont les classes abstraites et les méthodes abstraites php

Que sont les classes abstraites et les méthodes abstraites php

青灯夜游
Libérer: 2023-03-11 15:48:01
original
2652 Les gens l'ont consulté

La méthode abstraite fait référence à une méthode sans corps de méthode, et ce qu'on appelle aucun corps de méthode signifie que lors de la déclaration d'une méthode, il n'y a pas d'accolades "{}" et son contenu, mais un point-virgule est ajouté directement après la méthode nom. Tant qu'une méthode dans une classe est une méthode abstraite, alors la classe doit être définie comme une classe abstraite et doit être modifiée à l'aide du mot-clé "abstract".

Que sont les classes abstraites et les méthodes abstraites php

L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 7.1, ordinateur DELL G3

Dans les langages orientés objet, une classe peut avoir une ou plusieurs sous-classes, et chaque classe doit avoir au moins une classe publique Les méthodes servent de points d’entrée pour que le code externe puisse y accéder. Les classes abstraites et les méthodes abstraites sont un concept introduit dans PHP5, principalement pour faciliter l'héritage de classe.

1. Méthode abstraite

La méthode abstraite est une méthode sans corps de méthode. Ce que l'on appelle le corps de méthode signifie que lors de la déclaration de la méthode, il n'y a pas d'accolades{ } et le contenu qu'elle contient, mais directement ajouté après le. nom de la méthode. Terminez par un point-virgule. De plus, utilisez le mot-clé "abstract" lors de la déclaration d'une méthode abstraite. Le format est le suivant :

abstract 访问权限修饰符 function 方法名1(参数列表);
abstract 访问权限修饰符 function 方法名2(参数列表);
Copier après la connexion

2. Classe abstraite

Tant qu'une méthode dans une classe est une méthode abstraite, alors cette classe doit être définie comme une classe abstraite, et la classe abstraite doit également être modifiée. avec le mot-clé "abstract". Les classes abstraites peuvent également contenir des méthodes membres et des propriétés membres qui ne sont pas des méthodes abstraites, mais les droits d'accès ne peuvent pas être privés (modifiés à l'aide du mot-clé private), car les méthodes de la classe abstraite doivent être héritées par sous-classes.

L'exemple suivant montre comment définir une classe abstraite. Le code est le suivant :

abstract class 类名{
    public $name;
    abstract 访问权限修饰符 function 方法名1();
    abstract 访问权限修饰符 function 方法名2();
    访问权限修饰符 function 方法名3(){
        ... ... ;
    }
}
Copier après la connexion

Une classe abstraite est comme une classe "semi-finie". La classe abstraite contient des méthodes abstraites qui n'ont pas été implémentées, donc l'abstraite. la classe ne peut pas S'il est instancié, l'objet ne peut pas être créé et il ne peut pas être utilisé directement. Puisqu’une classe abstraite est une classe « semi-finie », quel est le rôle de l’utilisation d’une classe abstraite ?

Vous pouvez considérer une classe abstraite comme définissant une interface publique pour ses sous-classes et confiant ses opérations (peut-être une partie ou la totalité) aux sous-classes pour implémentation. Les classes abstraites sont utilisées comme modèles pour la surcharge de sous-classes. Définir une classe abstraite équivaut à définir une spécification, qui nécessite la conformité des sous-classes.

Lorsqu'une sous-classe hérite d'une classe abstraite, elle doit implémenter les méthodes abstraites dans la classe abstraite en fonction des propres besoins de la sous-classe. La sous-classe doit implémenter toutes les méthodes abstraites de la classe parent. Sinon, il y a toujours des méthodes abstraites dans la sous-classe, c'est donc toujours une classe abstraite et ne peut pas être instanciée en tant qu'objet.

【Exemple】Définissez une classe abstraite, puis utilisez une autre classe pour hériter de cette classe abstraite et implémenter les méthodes abstraites dans la classe abstraite.

<?php
    abstract class Website{
        public $name = &#39;PHP中文网<br>&#39;;
        public $url = &#39;https://www.php.cn/<br>&#39;;
        abstract function title();
        abstract function output();
    }
    class Demo extends Website{
        public function title(){
            echo &#39;抽象类和抽象方法&#39;;
        }
        public function output(){
            echo $this -> name.$this -> url;
        }
    }
    $obj = new Demo();
    $obj -> output();
    $obj -> title();
?>
Copier après la connexion

Les résultats d'exécution sont les suivants :

PHP中文网
https://www.php.cn/
抽象类和抽象方法
Copier après la connexion

De plus, il convient de noter que les droits d'accès des méthodes membres dans les sous-classes peuvent être les mêmes que les droits d'accès des méthodes abstraites, mais ne peuvent pas être plus stricts. De plus, le nombre de paramètres de la méthode membre dans la sous-classe doit être le même que le nombre de paramètres de la méthode abstraite.

Apprentissage recommandé : "Tutoriel vidéo 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!

É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