Maison >développement back-end >tutoriel php >Abstraction de classe PHP
En programmation orientée objet, une classe abstraite est celle qui peut être instanciée, c'est-à-dire qu'il n'est pas possible de déclarer un objet d'une telle classe. PHP prend en charge le concept de classe abstraite depuis la version 5.0
Une classe définie avec le mot-clé abstract devient une classe abstraite. De plus, toute classe contenant au moins une méthode abstraite est également considérée comme abstraite.
<?php class testclass{ // } ?>
Méthode abstraite déclare uniquement sa signature, c'est-à-dire sa visibilité, ses arguments et son type de retour avec des indications de type et n'a aucune fonctionnalité. Une classe qui hérite d'une telle classe abstraite doit remplacer (fournir une définition) toutes les méthodes abstraites. La méthode correspondante dans la classe enfant doit porter la même signature que dans la classe parent. Si la classe enfant ne remplit pas cette condition, l'analyseur PHP lève une exception. Une classe qui étend une classe abstraite peut désormais être instanciée, c'est pourquoi elle est appelée classe concrète
Exemple
Démo en direct
$a=new testclass(); PHP Fatal error: Uncaught Error: Cannot instantiate abstract class testclass
Voici le message d'erreur
<?php abstract class testclass{ abstract function test1(); abstract function hello(); } class myclass extends testclass{ function test1(){ echo "Overrides parent test method"; } } $a=new myclass(); ?>
Lorsque la méthode abstraite est définie avec des arguments, elle doit être remplacée dans la classe enfant avec même nombre d'arguments
Exemple
Live Demo
PHP Fatal error: Class myclass contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (testclass::hello)
这将产生以下输出 −
<?php abstract class testclass{ abstract function hello($name, $age); } class myclass extends testclass{ function hello($name, $age){ echo "My name is $name and my age is $age"; } } $a=new myclass(); $a->hello("Ravi",20); ?>
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!