1

上書きされた親関数を子インスタンスから再帰的に呼び出すにはどうすればよいですか? 私は静的メソッドを使用していないので、使用できませんparent::method()が、何らかの方法で行う必要があります。おそらくデザインパターンを通じて、私の問題に対するより良いアプローチがあると感じています。これは私のクラス構造です:

class Creature {
    public function eat() {
        // feed and digest
    }
}

class Mammal extends Creature {
    public function eat() {
        // gather and chew
    }
}

class Human extends Mammal {
    public function eat() {
        // have a meal
    }
}

class WesternPerson extends Human {
    public function eat() {
        // use knife & fork
    }
}

$me = new WesternPerson();
$me->eat();

呼び出しeat()は、特別なクラスから非常に抽象的なクラスまで再帰的に上向きになります。最も簡単な方法は、上書きされた関数内から同じ名前の親関数を呼び出すことができる場合です。でも、上書きされているので、できません。

4

2 に答える 2