例如这样, 我写一个主类 class app{里面的方法都是静态的} 然后我写另一个类class model extends app{里面的方法都是动态的,并且可能会在动态方法中调用主类的静态方法} 这样是不是不能的???? 如果做继承是不是主类和子类的方法必须是统一的?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
继承不会要求主类和子类的方法必须是统一的,一个类实现一个接口要求实现里面所有的方法,否则必须将这个类声明为抽象类。 关于你的问题,且看下面的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();