Абстрактные классы в переполнении стека ООП

У меня очень странное поведение в моем абстрактном классе.

вот мой код:

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

Что мне не хватает?

2

Решение

Вы пропустили объявление класса как абстрактного:

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

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector