我在抽象类中的行为非常奇怪。
这是我的代码:
<?php
class Hello {
public abstract function sayHello();
}
class Hey extends Hello {
public function sayHello(){
return "Hello";
}
}
$greeting = new Hey;
echo $greeting->sayHello();
所以,我期望结果:你好
但是我不明白为什么我会遵循错误:
致命错误:类Hello包含1个抽象方法,因此必须在/applications/mamp/htdocs/oop/ap/abstract.php上声明抽象或实现剩余方法(Hello :: Sayhello(。
我想念什么?
您缺少将类声明为抽象:
// here, class should be declared as abstract
abstract class Hello {
public abstract function sayHello();
}
class Hey extends Hello {
public function sayHello(){
return "Hello";
}
}
$greeting = new Hey;
echo $greeting->sayHello();
输出:
hello