博主信息
博文 61
粉丝 0
评论 0
访问量 65792
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
Trait特性技术详解
笑颜常开的博客
原创
1196人浏览过

<?php
/**
* Created by PhpStorm.
* User: 廖广
* Date: 2019/4/10
* Time: 21:10
*/
//trait代码复用:增强当前类的功能,克服单继承的缺点
//trait 工作在继承的上下文环境中,它是位于父类和子类之间的
//trait 的优先级高于父类,低于子类
//Bus>trait>Auto
trait Fun1{
   public function drive(){
       return '支持无人驾驶';
   }
   public function care(){
       return '保养其实很简单,记得及时充电就可以了';
   }
   //交通事故处理
   public function accident()  //['æksədənt]
   {
       return '汽车会自动报警,你就安静的坐在车里等警察来吧!';
   }
}
trait Fun2{
   public function fuel(){
       return '新能源汽车';
   }
   //交能事故处理
   public function accident()
   {
       return '只要不起火,电池还能继续使用的,放心吧!';
   }
}
class Auto{
   public $brand;
   public $purpose;
//    构造器
   public function __construct($brand,$purpose)
   {
       $this->brand=$brand;
       $this->purpose=$purpose;
   }
   public function care()
   {
       return '请到授权的专业4S店保养';
   }
}
//定义一个子类,工作类:bus
class Bus extends Auto{
//子类Bus除了可以继承Bus中的成员,还可以导入trait类中的方法
//    use Fun1;
//    use Fun2;
// 命名冲突的结局方法无非两种:替换,别名
   use Fun1,Fun2{
       Fun1::accident insteadof Fun2;
       Fun2::accident as Fun2Acc;
   }
   public function care(){
       return '我们是***商,保养请致电当地经销商';
   }
}
//实例化Bus
$bus=new Bus('安凯','客运');
echo $bus->brand,'<br>';
echo $bus->purpose,'<br>';
//访问trait中的方法
echo $bus->drive(),'<br>';
echo $bus->fuel(),'<br>';
//访问care()
echo $bus->care(),'<br>';
//访问Fun1中的accident()
echo $bus->accident(),'<br>';
//访问Fun2中的accident()
echo $bus->Fun2Acc();

本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学