返回利用后期静态绑......登陆

利用后期静态绑定技术,实现在父类调用子类中重写的静态成员练习

小孔2019-06-05 16:18:21268
<?php
//定义一个父类
class Father
{
    //静态属性
    public static $money = 50000;
 
    //静态方法
    public static function getClass()
    {
        //返回当前类名
        return __CLASS__;
    }
 
    //静态方法
    public static function getMoney()
    {
//        return self::getClass().'有'.self::$money;
 
        //static 用在静态继承的上下文中,动态设置静态成员的调用者(主体)
        return static::getClass().'有'.static::$money;
 
    }
}
 
//定义一个子类
class Son extends Father
{
    //覆写父类的静态属性
    public static $money = 30000;
 
    //覆写父类的静态方法
    public static function getClass()
    {
        return __CLASS__;
    }
}
 
//调用Father中的静态方法,来获取类名
echo Father::getClass(),'<br>';
echo Father::getMoney(),'<br>';
 
//调用子类Son类中的静态成员
echo Son::$money,'<br>';
echo Son::getClass(),'<br>';
echo '<hr>';
 
echo Son::getMoney();


最新手记推荐

• 用composer安装thinkphp框架的步骤• 省市区接口说明• 用thinkphp,后台新增栏目• 管理员添加编辑删除• 管理员添加编辑删除

全部回复(0)我要回复

暂无评论~
  • 取消回复发送