PHP Constructor Inheritance

PHP Constructor Inheritance – जब हम किसी Base Class को किसी Derived Class में Inherit करते हैं, तब अन्य OOPS Based Programming Languages की तरह ही PHP भी Constructors की Chaining नहीं करता।

यानी यदि Base Class व Derived Class दोनों ही Classes में Constructors हों और हम Derived Class का Object Create करें, तो Base Class का Constructor Automatically Call नहीं होता। इसीलिए PHP हमें Derived Class के Constructor में Base Class के Constructor को parent:: Expression द्वारा Call करने की सुविधा देता है।

चूंकि Constructors का प्रयोग किसी Class के Object को उसके Creation के समय ही Initialize करने के लिए किया जाता है, इसलिए पिछले Program में हमने Box Class के Object को Value Set करने के लिए जो काम set() Method द्वारा किया था, उसी काम को हम Constructors द्वारा भी कर सकते हैं।

Inheritance में Constructors के Role को ठीक से समझने के लिए हम निम्नानुसार Time एक नई Base Class बना रहे हैं, जिसमें HourMinutes को Store किया जा रहा है और फिर इस Class को Derive करके NewTime Class बना रहे हैं, जिसमें हमने Seconds को भी Store करने की सुविधा प्राप्त करने के लिए Time नाम की Base Class की Functionality को Extend किया हैः

<?php
	//Super Class or Base Class
	class Time
	{
		protected $hour, $minutes;
		
		public function __construct($hour, $minutes){
			$this->hour = $hour;
			$this->minutes = $minutes;			
		}
	
		public function display(){
			echo "\nTime : ". $this->hour . ":" . $this->minutes;
		}
	}
	
	//Subclass or Derived Class
	class NewTime extends Time{
		private $seconds;
		
		public function __construct($hour, $minutes, $seconds){
			parent::__construct($hour, $minutes);
			$this->seconds = $seconds;
		}
		
		public function display(){
			parent::display();
			echo ":". $this->seconds;
		}
	}

	$hmt = new NewTime(10, 12, 30);
	$hmt->display();
?>  

//Output
   Time : 10:12:30

इस Program हमने NewTime Class का एक Object hmt Create किया है और उसमें Time के रूप में 10 Hour, 12 Minutes, 30 Seconds Input किया है। जब ये Object Create होता है, तब चूंकि ये Object NewTime नाम की Derived Class का है, इसलिए Derived Class का Constructor Call होता है और ये तीनों मान क्रमश:  इस Constructor के Hour, MinutesSeconds नाम के Variables में Store हो जाते हैं।

फिर PHP Program Control इस Constructor में Enter करता है। चूंकि Hour व Minutes नाम के Data Members Base Class में हैं और Base Class के Data Members को Value Initialize करने के लिए Base Class के Constructor को Call करने की जरूरत पडती है।

इसलिए इस Derived Class के Constructor में सबसे पहले parent:: Expression द्वारा Base Class के Constructor को Call किया गया है और Arguments के रूप में Hour व Minutes के मानों को ज्यों का त्यों Base Class के Constructor को Pass कर दिया गया है।

फलस्वरूप PHP Program Control यहीं से Base Class के Constructor में Enter करता है और Base Class में Specified HourMinutes नाम के Data Members में Values को Initialize करके फिर से Derived Class के Constructor में Return होता है, जहां अगले Statement के रूप में PHP Control Derived Class के Data Member “Seconds” को Value Initialize करता है।

PHP in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook PHP in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

PHP in Hindi | Page: 647 | Format: PDF

BUY NOW GET DEMO REVIEWS