2012-10-02 33 views
9

Tôi có một lớp thực hiện một số phương pháp trừu tượng. Khi tôi mở rộng lớp mà tôi nhận được thông báo lỗi nghiêm trọng sau đây:Lỗi: Lớp phải được khai báo trừu tượng hoặc thực hiện các phương pháp còn lại

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

Các lớp học với phương pháp trừu tượng:

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

Lớp nơi tôi mở rộng 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() {} 
} 

Những gì tôi nên làm nhiều hơn thế này?

+3

Các lỗi cho bạn biết SOUTION! Không có nhiều để thêm ... bạn phải khai báo rằng lớp (CI_Controller_Rest) là trừu tượng, nếu không bạn phải cung cấp thực hiện cho các phương thức đó ... – obe6

+1

@ obe6 oh right! Tôi đã bỏ lỡ điều đó như thế nào? Tôi nghĩ rằng tôi đã thay đổi CI_Controller_Rest để trừu tượng. Đúng! – Andrew

Trả lời

20

Nếu một lớp có một hoặc nhiều chức năng trừu tượng, 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

Eh, bạn đã nhanh hơn 10 giây :) – 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

Vui lòng không đăng mã mà không có giải thích – JvdBerg

0

CI_Controller_Rest phải là một lớp trừu tượng bởi vì nó có chứa các phương pháp trừu tượng

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(); 
} 
Các vấn đề liên quan