継承できないのはわかるのですが、
$thisが、protectedを指すときはBを指すのに、privateはAを指す理屈がわかりません。

class A{
public function test(){ $this->method1(); $this->method2(); }
protected function method1(){ print "A1";}
private function method2(){ print "A2";}
}
class B extends A{
protected function method1(){ print "B1";}
private function method2(){ print "B2";}
}

$b = new B();
$b->test();