批改状态:合格
老师批语:其实这些案例看是简单的了, 还是要多动脑动手呀
//多接口继承interface iComputer1{public function version();}interface iComputer2{const str1 = '运行win7';}interface iComputer extends iComputer1,iComputer2{public function work();}//抽象类不用全部实现接口方法abstract class Note1 implements iComputer{public function version(){echo '笔记本';}}class Note extends Note1{public function work(){echo self::str1;}}//普通类必须全部实现接口方法class Desk implements iComputer{public function version(){echo '台式机';}public function work(){echo '运行win10';}}class Run{public static function sec($type){$type->version();$type->work();}}$note = new Note();$desk = new Desk();$run = Run::sec($note);
效果图
<?php//trait:与抽象类,接口一样不能实例化,只能嵌入到宿主类中使用//trait是一个特殊类:1:常规或静态属性方法2:抽象属性方法 但是不能用类常量trait tDemo{public static $name = '张三';public static $sex = '男';public $age;public static function getName(){echo self::$name;}}class Dad{public static $name1 = 'Tom';public static function getName(){echo self::$name1;}}//属性不能重名 否则报错//能实现代码的复用//子类中use trait 当继承的父类方法重名时 trait的优先级大于父类//优先级顺序 子类>trait>父类class Son extends Dad{use tDemo;}Son::getName();echo Son::$sex;
图例
有点难,脑子不够用,只能想点简单的例子,需要多看看视频消化一下
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号