我学习PHP,遇到问题:
<?php
class ProtectVis
{
abstract protected function countMoney();
protected $wage;
protected function setHourly($hourly)
{
$money = $hourly;
return $money;
}
}
class ConcreteProtect extends ProtectVis
{
function __construct()
{
$this->countMoney();
}
protected function countMoney()
{
echo "ok";
}
}
$worker = new ConcreteProtect();
Run Code Online (Sandbox Code Playgroud)
现在我有错误:
致命错误:类 ProtectVis 包含 1 个抽象方法,因此必须将其声明为抽象方法或实现以下中的其余方法 (ProtectVis::countMoney)
为什么?
小智 7
根据 OOP 原则,每个包含至少一个抽象方法的类也被认为是抽象的。来自 PHP 手册:
定义为抽象的类不能被实例化,并且任何至少包含一个抽象方法的类也必须是抽象的。
所以你应该改变
class ProtectVis
Run Code Online (Sandbox Code Playgroud)
和
abstract class ProtectVis
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27558 次 |
| 最近记录: |