चाइल्ड क्लास में पैरेंट कंस्ट्रक्टर विधि को कॉल करते समय हमें दो मामलों का सामना करना पड़ेगा।
केस1
यदि चाइल्ड क्लास कंस्ट्रक्टर को परिभाषित करता है, तो हम चाइल्ड क्लास में सीधे पैरेंट क्लास कंस्ट्रक्टर को नहीं चला सकते। पैरेंट कंस्ट्रक्टर को चलाने के लिए, चाइल्ड कंस्ट्रक्टर के भीतर पेरेंट ::__ कंस्ट्रक्ट () को कॉल करना आवश्यक है।
उदाहरण
<?php
class grandpa{
public function __construct(){
echo "I am in Tutorials Point"."\n";
}
}
class papa extends grandpa{
public function __construct(){
parent::__construct();
echo "I am not in Tutorials Point";
}
}
$obj = new papa();
?> Output: I am in Tutorials Point I am not in Tutorials Point
स्पष्टीकरण
उपरोक्त उदाहरण में, हमने पेरेंट क्लास कंस्ट्रक्टर को कॉल करने के लिए पेरेंट ::__ कंस्ट्रक्ट () का उपयोग किया है।
केस2
यदि बच्चा एक कंस्ट्रक्टर को परिभाषित नहीं करता है, तो इसे सामान्य वर्ग विधि की तरह ही मूल वर्ग से विरासत में प्राप्त किया जा सकता है (यदि इसे निजी के रूप में घोषित नहीं किया गया था)।
उदाहरण
<?php
class grandpa{
public function __construct(){
echo "I am in Tutorials point";
}
}
class papa extends grandpa{
}
$obj = new papa();
?> आउटपुट
I am in Tutorials point
स्पष्टीकरण
यहां पैरेंट क्लास को परोक्ष रूप से कहा जाता है क्योंकि चाइल्ड क्लास में हमने चाइल्ड क्लास में कोई कंस्ट्रक्टर फंक्शन घोषित नहीं किया है।