자식 인스턴스에서 재귀 적으로 덮어 쓴 부모 함수를 호출하는 방법은 무엇입니까? 정적 메서드를 사용하지 않기 때문에 parent::method()
을 사용할 수 없지만 어떻게 든 달라야합니다. 내 문제에 대한 더 나은 접근 방법이 디자인 패턴을 통해 가능할 것이라고 생각합니다.PHP에서 자식의 덮어 쓴 부모 함수를 호출
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()
를 호출하면 매우 추상 클래스에 특별한에서 반복적으로 위쪽으로 이동한다이 내 클래스 구조입니다. 가장 간단한 방법은 덮어 쓰기 된 함수 내에서 같은 이름의 부모 함수를 호출 할 수있는 것입니다. 그러나 나는 그것이 덮어 씌워 졌으므로 나는 할 수 없다는 것을 알고있다.
' parent :: method()'는 정적 호출이 아닙니다 (다소 비슷하게 보입니다). 그걸 사용하면 괜찮아. – Wrikken
참고 : http://stackoverflow.com/a/16925581/2153758 – bwoebi
감사합니다. 나는 분명히'::'연산자 때문에 혼란 스러웠다. 나는 지금 분명하다. – quape