批改状态:合格
老师批语:面向接口编程, 实现多态应用
实例演示:
<?php/*** 建立接口*/interface iUser{const NAME='马云';}interface iUser2 extends iUser{const NAME2='阿里巴巴';}interface iUser3 extends iUser,iUser2{const NAME3='2000亿';}/*** 工作类的实现*/class User implements iUser3{public function res(){return iUser2::NAME2.'的董事长'.iUser::NAME.'以总身价'.iUser3::NAME3.'蝉联中国首富!';}}$obj=new User();echo $obj->res();?>
输出结果:
个人总结:之前完全没有接触过接口,没有办法举更好的实例来演示,理解接口的含义和运用,对应用场景和方法完全没有头绪。。。。。
作用(1):实现了一种代码复用的方法,从而实现方法的多继承,与抽象类相似,但不能实例化
实例演示:
<?phptrait tUser{public function res(){$str=get_class_vars(__CLASS__);$val=printf('<pre>%s</pre>',print_r($str,true));// $key=implode('=>')}}class User1{use tUser;protected $name='马云';protected $res='阿里巴巴';protected $meny='2000亿';}class User2{use tUser;protected $name='马化腾';protected $res='腾讯';protected $meny='1800亿';}echo (new User1())->res();echo (new User2())->res();?>
输出结果:
作用(2):在基类中具有先性,通过优先设置,降低单继承的影响性
实例演示:
<?phptrait tUser{public static function res(){return '这是tUser中的方法'.__METHOD__;}}class User{public static function res(){return '这是父类User中的方法'.__METHOD__;}}class User1 extends User{use tUser;public static function res(){return '这个是子类User1中的方法'.__METHOD__;}}echo (new User1())->res();?>
输出结果:
注释子类中的方法:
<?phptrait tUser{public static function res(){return '这是tUser中的方法'.__METHOD__;}}class User{public static function res(){return '这是父类User中的方法'.__METHOD__;}}class User1 extends User{use tUser;// public static function res()// {// return '这个是子类User1中的方法'.__METHOD__;// }}echo (new User1())->res();?>
输出结果:为trait中的方法
trait 的优先级为 子类->trait->父类
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号