开发者社区 问答 正文

一个PHP类继承的问题:报错

例如这样, 我写一个主类 class app{里面的方法都是静态的} 然后我写另一个类class model extends app{里面的方法都是动态的,并且可能会在动态方法中调用主类的静态方法} 这样是不是不能的???? 如果做继承是不是主类和子类的方法必须是统一的?

展开
收起
kun坤 2020-06-09 11:25:50 478 分享 版权
1 条回答
写回答
取消 提交回答
  • 继承不会要求主类和子类的方法必须是统一的,一个类实现一个接口要求实现里面所有的方法,否则必须将这个类声明为抽象类。 关于你的问题,且看下面的demo:

    class app {

        public static  function ado(){
                echo 'app_do';
        }
    

    }

    require_once "./app.php";
    
    class model extends app{
    
            public function model_do(){
    echo "\n-------------static\n";
                    static::ado();
    echo "\n-------------parent\n";
                    parent::ado();
    
    
    echo "\n-------------model\n";
                    model::ado();
    echo "\n-------------parent\n";
                    app::ado();
    
                    echo "\nmodel_do\n";
            }
    
    }
    
    $a = new model();
    $a->model_do();

    运行结果:

    -------------static app_do -------------parent app_do -------------model app_do -------------parent app_do model_do
    希望对你有所帮助。。

    ######静态方法不能调用非实例化的动态方法 。但是动态能调静态的######可以的 model::method();######static::method();

    2020-06-09 11:25:56
    赞同 展开评论
问答分类:
PHP
问答标签:
问答地址: