PHP类的继承和重写?

标签 php class

<?php
class A {
    private function foo(){
        echo 1;
    }
    public function test(){
        $this->foo();
    }
}
class B extends A{
    public function  foo(){
        echo 0;
    }
}
$b = new B();
echo $b->test();

B类继承自A类,为什么输出结果是1而不是0?

最佳答案

因为私有(private)方法不能被重写。因此,当在类 B 中再次定义 A.foo 时,其范围不同,A.test 只能看到 A.foo

关于PHP类的继承和重写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49292083/

相关文章:

php - 我需要检查,如果用户在数据库中输入相同的用户名或密码,代码需要告诉他们。它已经存在。但它在这里不起作用

C# 一个类的 List<> 可以/应该是同一个类的静态成员吗​​?

c++ - C++ 中的类和异常处理

php - Symfony2 中的 ManyToOne、oneToMany 关联的结果不起作用

javascript - WordPress 模板文件中的 PHP javascript 冲突

php - 如何从 HTTP 请求验证 Google Cloud Task token ?

php - 代码点火器 4 : spark with multi public folders

c++ - 如何防止 size_t 被解释为引用?

Python 不认为等价对象是等价的

c# - 如何让 c# 类相互了解?