OOP php中的抽象课程



我在抽象类中的行为非常奇怪。

这是我的代码:

<?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

最新更新