* Interface
* 1. Utilisez des mots-clés : interface
* 2. La classe est le modèle de l'objet, et l'interface est le modèle de la classe
* 3. Regardez l'interface C'est une classe spéciale
* 4. Les méthodes de l'interface sont uniquement déclarées mais non implémentées, tout comme les classes abstraites
* 5. Les méthodes de l'interface doit être publique et prendre en charge statique
* 6. Les constantes de classe const peuvent être déclarées dans l'interface, mais elles ne peuvent pas être remplacées par des classes ou des sous-interfaces
* 7. Utilisez le mot-clé Implements pour implémenter une interface avec une classe
* 8 . Une classe peut implémenter plusieurs interfaces, séparées par des virgules
* 9. Le mot-clé extends peut également être utilisé pour hériter entre les interfaces
* 10. Une classe peut avoir plusieurs interfaces Lors de l'utilisation d'une interface, les méthodes ne peuvent pas avoir le même nom
//Déclarer l'interface : Animal
if (!interface_exists('Animal')) { interface Animal { //接口常量 const status = 'viable'; //能存活的 //接口方法:饲养时吃什么 public function feeding($foods); } } //声明类Cat,并实现接口Animal if (interface_exists('Animal')) { class Cat implements Animal { private $name = '猫'; //在类中必须实现接口中的方法feeding() public function feeding($foods) { return $this->name.'吃'.$foods; } } } //实例化Dog类, echo (new Cat())->feeding('老鼠'); echo '<hr>'; //再定义一个接口:动物的特性 if (!interface_exists('Feature')) { interface Feature { //接口方法 public function hobby($hobby); } } //声明一个类Dog,实现了二个接口: Animal,Feature if (interface_exists('Animal') && interface_exists('Feature')) { class Dog implements Animal, Feature { private $name = '狗'; //必须实现接口Animal中的feeding()方法 public function feeding($foods) { // return $this->name.'吃'.$foods; //改成链式 echo $this->name.'吃'.$foods; return $this; } //必须实现接口Feature中的hobby()方法 public function hobby($hobby) { // return $hobby; //改成链式 echo $hobby; return $this; } } }
// Instancier la classe Dog
echo (new Dog())->feeding('肉'); echo (new Dog())->hobby('忠诚,勇敢,不离不弃~~');
//Pensez-y Changer les deux appels de méthode ci-dessus en une chaîne ?
//Remarque : commentez d'abord l'instruction d'appel d'instanciation ci-dessus, sinon ce qui suit l'appel en chaîne ne prendra pas effet
(new Dog)->feeding('骨头')->hobby(',可爱,温顺,听话~~');
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!