title: Override abstract method behavior
body: <p>Hi it is possible to do something like this?</p>
  
  <pre><code>abstract class A {
      public function doSomething(){
          return 'Hi: ' . $this-&gt;changeMe();
      }
      abstract protected function changeMe();
  }
  
  class B extends A {
      protected function changeMe() {
          return 'B';
      }
  }
  
  class C extends A {
      protected function changeMe() {
          return 'C';
      }
  }
  </code></pre>
  
  <p>doSomething on object B should return Hi: B, doSomething on object C should return Hi: C.</p>