PHP में OOP इनहेरिटेंस के दौरान कंस्ट्रक्टर

इनहेरिटेंस के दौरान पैरेंट के कंस्ट्रक्टर को ओवरराइड किया जा सकता है। आइए एक उदाहरण से देखते हैं। मान लीजिए कि हमारे पास निम्नलिखित पैरेंट क्लास है:

php<?php
  class User {
    private $name;
    private $surn;
    
    public function __construct($name, $surn) {
      $this->name = $name;
      $this->surn = $surn;
    }
    
    public function getName() {
      return $this->name;
    }
    public function getSurn() {
      return $this->surn;
    }
  }
?>

मान लीजिए कि पैरेंट क्लास से निम्नलिखित क्लास इनहेरिट करती है:

php<?php
  class Student extends User {
    
  }
?>

मान लीजिए कि हम चाइल्ड क्लास में कंस्ट्रक्टर को एक्सटेंड करना चाहते हैं, इसमें अतिरिक्त पैरामीटर जोड़कर:

php<?php
  class Student extends User {
    private $year;
    
    public function __construct($name, $surn, $year) {
      
    }
  }
?>

इस स्थिति में हमें अनिवार्य रूप से पहली लाइन में parent::__construct() के माध्यम से पैरेंट के कंस्ट्रक्टर को कॉल करना होगा:

php<?php
  class Student extends User {
    private $year;
    
    public function __construct($name, $surn, $year) {
      parent::__construct($name, $surn);
    }
  }
?>

कमांड parent::__construct() असल में पैरेंट का कंस्ट्रक्टर है। इसलिए इसमें आवश्यक पैरामीटर पास करते हैं:

php<?php
  class Student extends User {
    private $year;
    
    public function __construct($name, $surn, $year) {
      parent::__construct($name, $surn);
    }
  }
?>

अब चाइल्ड में वर्ष को चाइल्ड की अपनी प्रॉपर्टी में लिखते हैं:

php<?php
  class Student extends User {
    private $year;
    
    public function __construct($name, $surn, $year) {
      parent::__construct($name, $surn);
      $this->year = $year;
    }
  }
?>

आइए वर्ष के लिए एक गेटर बनाते हैं:

php<?php
  class Student extends User {
    private $year;
    
    public function __construct($name, $surn, $year) {
      parent::__construct($name, $surn);
      $this->year = $year;
    }
    
    public function getYear() {
      return $this->year;
    }
  }
?>
Задание 1

मान लीजिए कि क्लास Employee इस पाठ की क्लास User से इनहेरिट करती है।

Задание 2

क्लास Employee में पैरेंट के कंस्ट्रक्टर को ओवरराइड करें, इसमें उम्र और वेतन का पैरामीटर जोड़कर।

Задание 3

उम्र और वेतन के लिए गेटर बनाएं।