<?php
class A {
    private function foo() {
        echo "[A#foo] success!\n";
    }
    public function test() {
        echo "[A#test] calling instance method\n";
        $this->foo();
        echo "[A#test] calling via static\n";
        static::foo();
    }
}

class B extends A {
   /* foo() будет скопирован в В, следовательно его область действия по прежнему А,
      и вызов будет успешен*/
}

class C extends A {
    private function foo() {
        /* исходный метод заменен; область действия нового метода С */
        echo "[C#foo]\n";
    }
}

$b = new B();
$b->test();
$c = new C();
$c->test();   //не верно
