> 백엔드 개발 > PHP 튜토리얼 > PHP 연구 노트 - 객체 지향(4) 상속 보충

PHP 연구 노트 - 객체 지향(4) 상속 보충

WBOY
풀어 주다: 2016-07-29 08:59:43
원래의
852명이 탐색했습니다.

앞서 언급했듯이 새 객체가 생성될 때마다 __construct 메서드가 먼저 실행되므로 상속 시 상위 클래스의 _construct 메서드를 먼저 실행한 다음 하위 클래스의 __construct 메서드를 실행해야 합니다. 처형될까?
실험을 해보겠습니다.

<code><span><span>class</span><span>Father</span>{</span><span>public</span><span><span>function</span><span>__construct</span><span>()</span>{</span><span>echo</span><span>"father has constructed"</span>;
    }
}
<span><span>class</span><span>Child</span>{</span><span>public</span><span><span>function</span><span>__construct</span><span>()</span>{</span><span>echo</span><span>"child has constructed"</span>;
    }
}
<span>$c</span> = <span>new</span> Child();
</code>
로그인 후 복사

출력은 다음과 같습니다.
아이가 구성했습니다
하위 클래스를 생성할 때 상위 클래스의 __construct 메서드가 호출되지 않는 이유는 무엇입니까? 하위 클래스의 생성자는 실제로 상위 클래스의 생성자입니다. 클래스가 실행되고 하위 클래스의 생성자가 실행됩니다.
그렇다면 하위 클래스가 __construct 메서드를 작성하지 않으면 어떻게 될까요? 실험해 보겠습니다.

<code><span><span>class</span><span>Father</span>{</span><span>public</span><span><span>function</span><span>__construct</span><span>()</span>{</span><span>echo</span><span>"father has constructed"</span>;
    }
}
<span><span>class</span><span>Child</span>{</span><span>public</span><span><span>function</span><span>show</span><span>()</span>{</span><span>echo</span><span>"dd"</span>;
    }
}
<span>$c</span> = <span>new</span> Child();
<span>$c</span>->show();

输出结果为:dd</code>
로그인 후 복사

;

출력 결과는 다음과 같습니다. dd
이는 상위 클래스의 __construct()가 상속되지 않음을 의미합니다.

').addClass('사전 번호 매기기').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

위 내용은 PHP 학습노트의 객체지향(4) 상속 보충설명과 관련 내용을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿