Maison >développement back-end >tutoriel php >classe abstraite en php
* Classe abstraite
* 1. Utilisez des mots-clés : abstract
* 2. Tant qu'il y a une méthode dans la classe déclarée comme méthode abstraite abstraite, alors cette classe doit être déclarée en tant que classe abstraite
* 3. Les méthodes abstraites ne peuvent avoir que des déclarations de méthodes et des listes de paramètres, et les corps de méthode ne sont pas autorisés
* 4. En raison de l'incertitude des méthodes abstraites, l'instanciation ; des classes abstraites est interdite. Seule l'instanciation par héritage est autorisée
* 5. Dans une sous-classe qui hérite d'une classe abstraite, toutes les méthodes abstraites de la classe abstraite doivent être implémentées
* 6. Accès aux membres de la sous-classe Le niveau de restriction doit être égal ou inférieur au contrat de la classe abstraite. Par exemple, si la classe abstraite est protégée, la sous-classe doit être
* protected ou public.
* n'est pas autorisé. 7. Les paramètres des méthodes de sous-classe doivent être les mêmes que Les paramètres des méthodes de classe abstraite sont exactement les mêmes, mais les paramètres par défaut peuvent être ajoutés * Portez une attention particulière à * 1. Bien que la classe abstraite ne puisse pas être instanciée, vous pouvez toujours créer un constructeur pour elle, mais elle doit être déclarée comme finale * 2. En théorie, les classes abstraites ne devraient pas avoir de membres statiques . Certains éditeurs afficheront E_STRICT2048, mais vous pouvez toujours le faireabstract class Fruits { //水果名称 protected $name; //声明静态属性,因为要用到静态类中 // protected static $name; //抽象方法 abstract public function eat(); //静态抽象方法 // abstract static public function eat(); //尽管不能直接实例化抽象类,但仍然可以有构造方法 public function __construct() { return '抽象类构造器,实例化时自动调用<br>'; } }//Pour faciliter l'enseignement, la classe abstraite et ses sous-classes sont toutes écrites dans un seul fichier de classe . //Dans le développement réel, un fichier de classe distinct doit être créé pour chaque classe
class Apple extends Fruits { protected $name = '苹果'; //声明为静态属性 // public static $name = '苹果'; public function eat() { return $this->name.'可以直接生吃'; } //子类构造方法 public function __construct() { echo parent::__construct(); } //实现抽象类中的抽象静态方法eat() // public static function eat() // { // return self::$name.'可以直接生吃'; // } } $apple = new Apple; echo $apple->eat();//Auparavant, il s'agissait d'un fichier statique abstrait. Les classes n'ont pas besoin d'être instanciées. Vous pouvez utiliser des classes pour accéder directement à
.
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!