批改状态:合格
老师批语:是不是被这些术语搞伤了, 其实本质上还是类, 只是应用场合不同罢了
<?php// 接口关键字:interfaceinterface ischool{const NAMES ='湖畔大学';const PRINCIPAL ='马云';const STUDENT1 ='柳传志';const STUDENT2 ='冯仑';public static function names();public static function principal();public static function student1();public static function student2();}// 利用抽象类实现接口中一种方法abstract class Dd implements ischool{public static function names(){return ischool::NAMES;}}// 利用工作类实现剩下的方法class Db extends Dd{public static function principal(){return ischool::PRINCIPAL;}public static function student1(){return ischool::STUDENT1;}public static function student2(){return ischool::STUDENT2;}}echo(new Db)::PRINCIPAL;echo '<hr>';echo(new Db)::STUDENT1;echo '<hr>';echo(new Db)::STUDENT2;echo '<hr>';
// 接口多继承interface Da{const NAME = '王老师';}interface Df{const SUBJECT = '语文';}interface Dc{const TIME = '上午';public function pec();}class iDj implements Da , Df , Dc{public function pec(){return Da::NAME . '教的科目是' . Df::SUBJECT . '时间是' . Dc::TIME;}}echo (new iDj)->pec();
// trait:与抽象类,接口一样不能实例化, 只能嵌入到宿主类中使用// trait成员:常规成员,静态成员,抽象成员,不能使用类常量// trait功能:代码复用trait tOne{public $doc = 12;public static $nmu = 15;abstract public function lop();}class Li{// 关键字:useuse tOne; //加载trait tOne,在其他类中也可以加载这个trait,实现代码复用public function lop(){return $this->doc;}}echo (new Li)->lop();
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号