抽象class,如何使方法抽象

Abstract class, how to make method abstract

几天前我在面试时,被问到这样一个问题:

There is an abstract class A with two methods foo and bar, from it generated derived class C, which was implement only the method foo. What changes need to take place in the script, in order to make it work, while the implementation and interface classes A and C should not be changed

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

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

我说:好的,我们可以简单地向我们的 C class

添加一个方法
public function bar() {
   //
}

他们说这没问题,但是如果您不能添加此方法并且不能更改抽象 class A(及其方法)怎么办?

有两种选择,要么我的面试官很傻,要么我很傻,漏掉了什么。

我已阅读 php.net 关于抽象 classes 的文档,我没有看到任何其他解决方案。(当然我可以使 class A 不抽象或删除abstract modifier 来自 bar 方法,但我不允许这样做);

请帮帮我,因为这个问题不让我睡觉!

你需要声明Class C 是抽象的。