Tal como dice Jucem, fijate en esta línea dentro de ConcreteClass1:
  Código PHP:
    public function prefixValues($prefix) { 
    
  El método que definitste en la clase abstracta es prefixValue y no prefixValue
s. Al encontrar un método abstracto de la clase padre que no era redefinido en la clase hija se te obligaba a declarar la clase ConcreteClass1 también como abstracta. 
Tu código queda así: 
 Código PHP:
    <?php 
abstract class AbstractClass 
{ 
   // Force Extending class to define this method 
   abstract protected function getValue(); 
   abstract protected function prefixValue($prefix); 
 
   // Common method 
   public function printOut() { 
       print $this->getValue() . "\n"; 
   } 
} 
 
class ConcreteClass1 extends AbstractClass 
{ 
   protected function getValue() { 
       return "ConcreteClass1"; 
   } 
   
   public function prefixValue($prefix) { 
       return "{$prefix}ConcreteClass1"; 
   } 
} 
 
class ConcreteClass2 extends AbstractClass 
{ 
   protected function getValue() { 
       return "ConcreteClass2"; 
   } 
 
   public function prefixValue($prefix) { 
       return "{$prefix}ConcreteClass2"; 
   } 
} 
 
$class1 = new ConcreteClass1; 
$class1->printOut(); 
echo $class1->prefixValue('FOO_') ."\n"; 
 
$class2 = new ConcreteClass2; 
$class2->printOut(); 
echo $class2->prefixValue('FOO_') ."\n"; 
?>    
  Saludos.