title: Error: Class must be declared abstract or implement the remaining methods
body: <p>I have a class that implements several abstract methods. When I extend that class I get the following fatal error message:  </p>
  
  <pre><code>Class CI_Controller_Rest contains 6 abstract methods and must therefore be declared abstract or implement the remaining methods  
  </code></pre>
  
  <p>The class with abstract methods:  </p>
  
  <pre><code>class CI_Controller_Rest extends CI_Controller {
      public function __construct() {
          parent::__construct();
      }
  
      abstract public function index();
  
      abstract public function get();
  
      abstract public function head();
  
      abstract public function post();
  
      abstract public function put();
  
      abstract public function delete();
  }  
  </code></pre>
  
  <p>The class where I extend <code>CI_Controller_Rest</code>:  </p>
  
  <pre><code>class Welcome extends CI_Controller_Rest {
  
      public function __construct() 
      {
          parent::__construct();
      }
  
      public function index() {}
  
      public function get() {}
  
      public function head() {}
  
      public function post() {}
  
      public function put() {}
  
      public function delete() {}
  }  
  </code></pre>
  
  <p>What should I do more than this?</p>