Dans cet article, nous présentons ce que sont les classes abstraites et une introduction à leur utilisation.
Qu'est-ce qu'un cours abstrait ?
Les classes abstraites ne peuvent pas être instanciées et les mêmes méthodes ne sont pas implémentées. Seules les déclarations de méthodes sont fournies sans implémentation spécifique. Les classes abstraites ne peuvent être utilisées que comme classes parents d'autres classes. Les classes abstraites sont déclarées à l'aide du mot-clé abstract et le format de syntaxe est :
abstract class AbstractName{ ..... }
Remarque :
Les classes abstraites sont similaires aux classes ordinaires et ont des variables membres et des méthodes membres. Mais il y a une différence. Une classe contenant une méthode abstraite doit elle-même être abstraite. Une méthode abstraite n’a pas de corps de méthode et ses fonctions ne peuvent être complétées que dans des sous-classes. Les méthodes abstraites sont également modifiées à l'aide du mot-clé abstract. Le format est :
abstract function abstractName();
La méthode abstraite est suivie d'un point-virgule au lieu d'accolades "{}".
Quel est le rôle des classes abstraites ?
Parmi nos classes, de nombreuses classes seront écrites à plusieurs reprises. À l'heure actuelle, nous pouvons utiliser le concept de classes abstraites pour écrire une classe publique. Après instanciation, nous pouvons l'appeler à plusieurs reprises. Une classe abstraite est comme un grand entrepôt contenant de nombreux éléments. Vous n'êtes pas obligé de tout utiliser dans l'entrepôt. Vous pouvez l'appeler lorsque vous en avez besoin. Si vous n'êtes pas satisfait des articles présents dans l'entrepôt, vous pouvez également en créer un nouveau vous-même.
Les méthodes abstraites et les classes abstraites sont principalement utilisées dans des hiérarchies de classes complexes. Cette relation hiérarchique doit garantir que chaque sous-classe contient et surcharge certaines méthodes spécifiques. Cela peut également être réalisé via des interfaces.
Explication des exemples de classes abstraites :
<?php header("content-type:text/html;charset=utf-8"); abstract class Member{ abstract function vipMember($name,$level,$money); } class Member1 extends Member{ function vipMember($name,$level,$money){ echo "您在PHP中文网的会员名是:" . $name; echo '<br/>'; echo "您的会员等级是:" . $level; echo '<br/>'; echo "您发文章赚取的钱是:" . $money; } } class Member2 extends Member{ function vipMember($name,$level,$money){ echo "您在PHP中文网的会员名是:" . $name; echo '<br/>'; echo "您的会员等级是:" . $level; echo '<br/>'; echo "您要提取" . $money . "元"; } } $member1 = new Member1(); $member2 = new Member2(); $member1->vipMember('大白','三级','24.35'); echo '<br/>'; echo '<hr/>'; $member2->vipMember('小明','五级','84.73');
Créez d'abord une classe abstraite membre, qui contient une méthode abstraite vipMember. Générez deux sous-classes, Member1 et Member2, pour la classe abstraite et implémentez des méthodes abstraites dans les deux sous-classes respectivement. Enfin, instanciez deux objets, appelez la méthode abstraite implémentée et enfin affichez.
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!