2016-05-04 15 views
0

数日前、私は就職の面接にあった方法の要約を作る方法を、私のような質問をしました。この1:抽象クラス、

から、二つの方法foobarと抽象クラス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を削除するが、私はそれを行うことは許されないのですができます)。

私の助けてください、この質問は私を寝かせさせないためです!

+1

2つのクラスで何かを変更することはできません。どうすればそれを修正できますか?あなたのインタビュアーは、上記のコードは常に致命的なエラーを返すため、ツールです。念頭に置かなければならないのは 'C'を抽象クラスにすることだけですが、私はそれを行うことはできません。 – Daan

答えて

1

あなたはクラスCを宣言する必要があります抽象です。

+0

私はそれを知っていますが、私は他のsulutionがあれば知りませんが、答えをありがとう – user4785882