10

我有一个实现几个抽象方法的类。当我扩展该类时,我收到以下致命错误消息:

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

除了这些,我还应该做什么?

4

3 回答 3

23

如果一个类有一个或多个抽象函数,它必须被声明为一个抽象类

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();
}  
于 2012-10-02T10:18:00.673 回答
1
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();
}  
于 2012-10-02T10:18:10.477 回答
0

CI_Controller_Rest 必须是抽象类,因为它包含抽象方法

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();
}  
于 2017-07-20T23:40:31.963 回答