数日前、私は就職の面接にあった方法の要約を作る方法を、私のような質問をしました。この1:抽象クラス、
から、二つの方法
foo
とbar
と抽象クラスA
あり 派生クラスC
が生成されました。これはメソッドfoo
のみを実装していました。大丈夫、我々は簡単なことができます:どのような変更は、実装およびインターフェースクラスAとC が
abstract class A {
abstract public function foo();
abstract public function bar();
}
class C extends A {
public function foo() {
// some code
}
}
を変更すべきではないながら、私は言った、 それを動作させるためには、スクリプトの中で場所を取る必要がありますあなたは、このメソッドを追加することはできません、あなたは抽象クラスA
(およびそのメソッド)を変更することができない場合、当社のC
彼らはこれがOKであることを特徴とする
public function bar() {
//
}
クラスが、何1つのメソッドを追加します。
2つのオプションがあります。私のインタビュアーが愚か者であるか、私は愚かで何かを見逃しています。
私は抽象クラスについてphp.net
ドキュメントを読んでいると私は他のソリューションが表示されない(ofcourseの私はクラスA
抽象的ではない作るかbar
方法からabstract modifier
を削除するが、私はそれを行うことは許されないのですができます)。
私の助けてください、この質問は私を寝かせさせないためです!
2つのクラスで何かを変更することはできません。どうすればそれを修正できますか?あなたのインタビュアーは、上記のコードは常に致命的なエラーを返すため、ツールです。念頭に置かなければならないのは 'C'を抽象クラスにすることだけですが、私はそれを行うことはできません。 – Daan