1. Qu'est-ce qu'une méthode abstraite ?
Les méthodes que nous définissons dans la classe sans méthodes 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();
2. Qu'est-ce qu'une classe abstraite ?
Tant qu'une méthode dans une classe est une méthode abstraite, alors la classe est définie comme une classe abstraite, et la classe abstraite doit également être modifiée avec le mot-clé "abstract" dans une classe abstraite; Il peut s'agir de méthodes qui ne sont pas abstraites et d'attributs Member, 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 :
démo de classe abstraite{
var $test;
fonction abstraite fun1();
fonction abstraite fun2 ( );
}
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 déjà 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'instances. l'utilisation de déclarer des classes abstraites pour les objets ? Nous utilisons des méthodes abstraites comme modèles pour la surcharge des sous-classes.Définir une classe abstraite équivaut à définir une spécification.Cette spécification nécessite que les sous-classes soient conformes à la classe abstraite, les méthodes abstraites qu'elle contient sont implémentées en fonction des besoins. sous-classes. 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 ; Parce que parfois nous devons hériter d'une classe abstraite pour implémenter certaines fonctions, 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 la classe
Par exemple ; :
mode classe abstraite{
var $test;
fonction abstraite fun1();
fonction abstraite fun2();
function fun2 (){
....
}
}
$mode = nouveau mode(); //Résumé Une classe ne peut générer que des objets d'instance, il est donc erroné de le faire. L'objet instancié est remis à la sous-classe
class test extends mode{
function fun1(){
....
}
fonction fun2(){
....
>
}
$test = new test(); //Les sous-classes peuvent instancier des objets car toutes les méthodes abstraites de la classe parent sont implémentées
Plus de méthodes abstraites et d'abstractions dans PHP Pour les articles liés aux cours, veuillez faire attention au site Web PHP chinois !