OOP PHP中的抽象类

Tru*_*ode 2 php oop abstract-class

我在抽象课中有非常奇怪的行为.

这是我的代码:

<?php

class Hello {

    public abstract function sayHello();

}

class Hey extends Hello {

public function sayHello(){
    return "Hello";
}

}


$greeting = new Hey;

echo $greeting->sayHello();
Run Code Online (Sandbox Code Playgroud)

所以,我期待结果:你好

但我不明白为什么我会收到以下错误:

致命错误:类Hello包含1个抽象方法,因此必须在第7行的/Applications/MAMP/htdocs/oop/abstract.php中声明为abstract或实现其余方法(Hello :: sayHello)

我错过了什么?

Sys*_*all 7

你错过了将类声明为抽象:

// 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();
Run Code Online (Sandbox Code Playgroud)

产出:

hello
Run Code Online (Sandbox Code Playgroud)