Абстрактный класс, как сделать метод абстрактным

Несколько дней назад я был на собеседовании, мне задали такой вопрос:

Есть абстрактный класс A с двумя методами foo а также bar, от
он породил производный класс C, который был реализован только метод
foo, Какие изменения нужно внести в скрипт, чтобы сделать
это работает, в то время как реализация и интерфейс классов А и С
не должно быть изменено

abstract class A {
abstract public function foo();
abstract public function bar();
}

class C extends A {
public function foo() {
// some code
}
}

я сказал: хорошо, мы можем просто добавить один метод к нашему C учебный класс

public function bar() {
//
}

они сказали, что это нормально, но что, если вы не можете добавить этот метод и не можете изменить абстрактный класс A (и его методы).

И есть два варианта: либо мой интервьюер дурак, либо я дурак и что-то упустил.

я прочитал php.net документация об абстрактных классах, и я не вижу другого решения. (Конечно, я могу сделать класс A не абстрагироваться или удалить abstract modifier от bar метод, но мне нельзя это делать);

Помогите мне, пожалуйста, потому что этот вопрос не дает мне спать!

0

Решение

Вам нужно объявить, что класс C является абстрактным.

1

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

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

По вопросам рекламы [email protected]