博主信息
博文 17
粉丝 0
评论 0
访问量 15217
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
面向接口编程(包括trait)学习心得
越努力越幸运
原创
747人浏览过

//作业

     //接口及trait的面向接口编程学习心得:

    

     //接口:特殊的抽象类;特点:1.成员属性只能是常量,不能是变量;

     //2.所有方法都只能是抽象方法;

     //3.可以在实现时,多继承;

    

     interface iGoods{

     const SERIAL=10;

    

     function fun1();

     function fun2();

     }

    

     interface iGoods1{

     const NAME='垫圈';

    

     function fun3();

     }

    

     class Goodslist implements iGoods,iGoods1{

    

     function fun1(){

     echo iGoods::SERIAL.'<br>';

     }

     function fun2(){

     echo iGoods1::NAME.'<br>';

     }

     function fun3(){

     echo iGoods::SERIAL.':'.iGoods1::NAME.'<br>';

     }

     }

    

     $goods=new Goodslist();

     echo $goods->fun3();

//trait:不能有类常量

     trait A{

     public $x=100;

     protected $name='胡八一';

     public function get(){

     return $this->name;

     }

    

     public static $y=2;

     public static function set(){

     return self::$y;

    

     }

     public static $age;

    

     abstract public static function set1();

     }

    

     //客户端:

     class User3{

     //在类中使用trait,用use关键字

     use A;

     //使用trait,像接口一样,必须实现抽象方法,否则报错

     public static function set1(){

     return self::$age;

     }

     }

    

     $user3=new User3();

     User3::$age=49;

    

     echo $user3->get().':'. User3::set1();

     echo '<br>';

    

     //所以,trait最好的地方是,可以写一个方法,方便地在很多需要的类中使用;

     //trait中的属性不允许被重写;同时:trait的属性不允许重名;

     //trait的方法和继承上下文中的重名方法优先级:

     //子类(当前类)>trait>父类;

     //方法集:在父类和子类间,定义很多trait,来实现父类和子类原本方法的不足;

    

    

    

本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系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+教程免费学