【问题标题】:Error: Class must be declared abstract or implement the remaining methods错误:必须将类声明为抽象类或实现其余方法
【发布时间】:2012-10-02 10:14:49
【问题描述】:

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

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

除此之外我还应该做什么?

【问题讨论】:

  • 错误告诉你解决办法!没什么好补充的……你必须将该类(CI_Controller_Rest)声明为抽象类,否则你必须为这些方法提供实现……
  • @obe6 哦,对了!我怎么错过了?我以为我将 CI_Controller_Rest 更改为抽象。对!

标签: php


【解决方案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();
}  

【讨论】:

  • 呃,你快了 10 秒 :)
【解决方案2】:
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】:

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

    【讨论】:

      猜你喜欢
      • 2015-06-29
      • 2015-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多