У меня очень странное поведение в моем абстрактном классе.
вот мой код:
<?php
class Hello {
public abstract function sayHello();
}
class Hey extends Hello {
public function sayHello(){
return "Hello";
}
}$greeting = new Hey;
echo $greeting->sayHello();
Итак, я ожидаю результата: Привет
Но я не могу понять, почему я получаю следующие ошибка :
Неустранимая ошибка: класс Hello содержит 1 абстрактный метод и поэтому должен быть объявлен как абстрактный или реализовать оставшиеся методы (Hello :: sayHello) в /Applications/MAMP/htdocs/oop/abstract.php в строке 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();
Выходы:
hello
Других решений пока нет …