如何在PHP中的非抽象类中声明抽象方法?
2022-08-30 09:32:27
						class absclass {
    abstract public function fuc();
}
报告:
PHP 致命错误:类 absclass 包含 1 个抽象方法,因此必须声明为抽象或实现其余方法 (absclass::fuc)
我想知道通过实现其余的方法意味着什么,如何?
class absclass {
    abstract public function fuc();
}
报告:
PHP 致命错误:类 absclass 包含 1 个抽象方法,因此必须声明为抽象或实现其余方法 (absclass::fuc)
我想知道通过实现其余的方法意味着什么,如何?
请参阅 PHP 手册中有关类抽象的章节:
PHP 5 引入了抽象类和方法。定义为抽象的类不能实例化,并且包含至少一个抽象方法的任何类也必须是抽象的。定义为抽象的方法只是声明方法的签名 - 它们不能定义实现。
这意味着你必须
abstract class absclass { // mark the entire class as abstract
    abstract public function fuc();
}
或
class absclass {
    public function fuc() { // implement the method body
        // which means it won't be abstract anymore
    };
}
						我假设其余方法实际上指的是您尝试定义的抽象方法(在本例中为 ),因为可能存在的非抽象方法无论如何都是可以的。这可能是一个可以使用更精确措辞的错误消息:如果它说剩余,它本来可以说抽象。fuc()
修复非常简单(错误消息的这一部分很好):您需要更改以下内容:
abstract public function fuc();
...进入正确的实现:
public function fuc(){
    // Code comes here
}
...或者,或者,根据您的需要,使整个类抽象:
abstract class absclass {
    abstract public function fuc();
}