在子函数的静态调用中,为什么父函数会运行?

Joh*_*ith 1 php inheritance static class

让我们看看这个类的构造:

class A
{
    public static function aa() { }
}

class B extends A
{
    public static function bb() { }
}
Run Code Online (Sandbox Code Playgroud)

在这里,B:bb();并且A:aa();是有效的.但为什么B:aa();还能运作?这不就意味着我直接调用了这个aa方法B吗?为什么继承和压倒在这里工作?

Jvd*_*erg 5

作为class B 扩展 class A,B类具有A所具有的每种受保护公共方法.

通过调用B:aa()编译器查看是否B:aa()在类B中重写,如果没有,则调用父类,在这种情况下是类A.

在面向对象编程(OOP)中,扩展一个类也称为继承,B类继承A类中的所有公共和受保护方法