2012-10-02 10 views
9

私はいくつかの抽象メソッドを実装するクラスを持っています。私はそのクラスを拡張するとき、私は、次の致命的なエラーメッセージが表示されます。抽象メソッドを持つクラスエラー:クラスを抽象宣言するか、残りのメソッドを実装する必要があります

Class CI_Controller_Rest contains 6 abstract methods and must therefore be declared abstract or implement the remaining methods 

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(); 
} 

私はCI_Controller_Restを拡張するクラス:

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() {} 
} 

何私がすべきこれ以上は?

+3

エラーがあなたにsoutionを伝えるが含まれているためCI_Controller_Restは抽象クラスでなければなりません!あなたはそのクラス(CI_Controller_Rest)を抽象として宣言しなければなりません。さもなければ、そのメソッドの実装を提供しなければなりません... – obe6

+1

@ obe6 oh right!どのように私はそれをお見逃しですか? CI_Controller_Restをabstractに変更したと思いました。右! – Andrew

答えて

20

クラスは、1つまたは複数の抽象的機能を持っている場合は、it MUST be declared as an abstract class

abstract 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(); 
} 
+3

ええと、10秒で速かったよ:) – S3Mi

0
abstract 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(); 
} 
+11

説明なしでコードを投稿しないでください – JvdBerg

0

それは抽象メソッド

abstract 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(); 
} 
関連する問題