9
확장과 같은 방법을 확장 : 난> 산책() 인간 -를 호출하는 경우PHP 내가 2 클래스가 클래스
class animal{
public function walk(){
walk;
}
}
class human extends animal{
public function walk(){
with2legs;
}
}
이 방법은, 그것은 단지 실행 with2legs을;
하지만 부모님의 산책을 원합니다. 너무.
나는 내가이 방법으로 수정할 수 있습니다 알고
class human extends animal{
public function walk(){
parent::walk();
with2legs;
}
}
을 그러나 문제는) 나는 많은 서브 클래스를하고 난 (부모 :: 산책을 넣어 싶지 않아,이다; 모든 어린이 산책(). 클래스를 확장하는 것처럼 메서드를 확장 할 수있는 방법이 있습니까? 오버 라이딩하지 않고 실제로 메소드를 확장합니다. 아니면 더 좋은 대안이 있습니까?
감사합니다.
class animal{
// Function that has to be implemented in each child
abstract public function walkMyWay();
public function walk(){
walk_base;
walkMyWay();
}
}
class human extends animal{
// Just implement the specific part for human
public function walkMyWay(){
with2legs;
}
}
class pig extends animal{
// Just implement the specific part for pig
public function walkMyWay(){
with4legs;
}
}
난 그냥 전화를해야이 방법 :
이것은 훌륭합니다. 나는 부모로부터 자식 메소드를 호출 할 생각이 전혀 없었습니다! – Tony
예, 제가 자주 사용하는 디자인입니다. 어떤 상황에서는 매우 편리합니다. –
@OneTrickPony Tony가 무엇을 기대하는지,이 질문을하기 위해 그를 밀어 붙인 그의 실제 사용 사례는 무엇인지 모르겠지만 이것은 한 가지 방법입니다. 그리고 최악의 경우, 그는 새로운 가능성을 발견했습니다 ;-). 나 침대 시간이야. 건배! –