A ver:
Imprime Foo porque al ser test un método estático self sigue haciendo referencia a la clase base.
Para que imprima Bar hay que sobreescribir el método test:
Código PHP:
<?php
class Foo {
public static function who() {
echo __CLASS__;
}
public static function test() {
self::who();
}
}
class Bar extends Foo {
public static function who() {
echo __CLASS__;
}
public static function test() {
self::who();
}
}
Bar::test();