<?php /* 定义接口 其中有走路 *** 寻找的方法 */ interface GuaiShou { public function ZouLu(); public function GongJi(); public function XunZhao(); } // 继承接口 的 人类 // class RenLei implements GuaiShou { public function ZouLu() { echo '我是'. RenLei::class . ',我用双脚走路<br>'; } public function GongJi() { echo '我是'. RenLei::class.',我用智慧***<br>'; } public function XunZhao() { echo '我是'. RenLei::class.',我用心寻找<br>'; } } // 继承接口 的 精灵 class JingLing implements GuaiShou { public function ZouLu() { echo '我是'. JingLing::class.',我用双脚走路<br>'; } public function GongJi() { echo '我是'. JingLing::class.',我用法力***<br>'; } public function XunZhao() { echo '我是'. JingLing::class.',我用翅膀寻找<br>'; } } // 继承接口 的 兽族 class ShouZu implements GuaiShou { public function ZouLu() { echo '我是'. ShouZu::class.',我用大腿走路<br>'; } public function GongJi() { echo '我是'. ShouZu::class.',我用大力***<br>'; } public function XunZhao() { echo '我是'. ShouZu::class.',我用蛮力寻找<br>'; } } // 继承接口 的 不死族 class BuSiZu implements GuaiShou { public function ZouLu() { echo '我是'. BuSiZu::class.',我用大腿走路<br>'; } public function GongJi() { echo '我是'. BuSiZu::class.',我用大力***<br>'; } public function XunZhao() { echo '我是'. BuSiZu::class.',我用蛮力寻找<br>'; } } /* 创建工厂类 */ class AFactory { // 静态的工厂方法 传入类型 // 将传入的类型赋值给类名变量 // 返回 new 类名变量 static function factory($type) { $className = $type; return new $className; } } // 调用: // 工厂类下的工厂方法(传入类名) // 调用方法 $ren = AFactory::factory('BuSiZu'); $ren->GongJi();