抽象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 是抽象的。
几天前我在面试时,被问到这样一个问题:
There is an abstract class
A
with two methodsfoo
andbar
, from it generated derived classC
, which was implement only the methodfoo
. 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 是抽象的。