0

このようなクラスがあると想像してください

class MyClass {
    private function func1() {
        // Much code
        func2();
        // Much code
    }
    private function func2() {
        echo 'old class';
    }
}

このクラスを拡張し、そこで関数 func2() を置き換えることは可能でしょうか。新しいクラスでは、func1() は new func2() を使用します。このような:

class MyNewClass extends MyClass {
    private function func2() {
        echo 'new class';
    }
}

しかし、私が説明したメソッドは MyNewClass の「古いクラス」をエコーし​​ますが、親関数を置き換えるにはどうすればよいでしょうか?

4

2 に答える 2

0

古いクラスから func2 を引き続き実行したいが、新しいクラスの func2 でより多くのコードを実行したいようです。これを行うには、新しいクラス関数で親を呼び出すだけです。そのようです:

private function func2() {
    echo 'new class';
    parent::func2();
}
于 2013-09-20T14:51:01.167 に答える