抽象类,如何使方法抽象

时间:2016-05-04 12:37:58

标签: php abstract-class abstraction

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

  

有一个抽象类A有两个方法foobar,来自   它生成了派生类C,它只实现了方法   foo。需要在脚本中进行哪些更改才能生成   它工作,而实现和接口类A和C.   不应该改变

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方法,但我不允许这样做);

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

1 个答案:

答案 0 :(得分:1)

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