কম্পিউটার টিউটোরিয়াল

PHP-তে চাইল্ড ক্লাসে পেরেন্ট কনস্ট্রাক্টর কল করা

চাইল্ড ক্লাসে পেরেন্ট কনস্ট্রাক্টর মেথড কল করার সময় দুটি কেস সম্মুখীন হয়।

কেস ১

যদি চাইল্ড ক্লাস কনস্ট্রাক্টর ডিফাইন করে, তবে পেরেন্ট ক্লাস কনস্ট্রাক্টর সরাসরি চাইল্ড ক্লাসে রান করা যায় না। পেরেন্ট কনস্ট্রাক্টর রান করতে চাইল্ড কনস্ট্রাক্টরের ভিতরে parent::__construct() কল করা আবশ্যক।

উদাহরণ

<?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

ব্যাখ্যা

উপরোক্ত উদাহরণে, পেরেন্ট ক্লাস কনস্ট্রাক্টর কল করতে parent::__construct() ব্যবহার করা হয়েছে।

কেস ২

যদি চাইল্ড ক্লাস কনস্ট্রাক্টর ডিফাইন না করে, তবে সেটি পেরেন্ট ক্লাস থেকে নরমাল ক্লাস মেথডের মতো ইনহেরিট করতে পারে (যদি সেটি প্রাইভেট ডিক্লেয়ার না করা হয়)।

উদাহরণ

<?php 
class grandpa{ 
    public function __construct(){ 
        echo "I am in Tutorials point"; 
    } 
} 
class papa extends grandpa{ 
} 
$obj = new papa(); 
?>

আউটপুট

I am in Tutorials point

ব্যাখ্যা

এখানে পেরেন্ট ক্লাস ইমপ্লিসিটলি কল হয়েছে কারণ চাইল্ড ক্লাসে কোনো কনস্ট্রাক্টর ফাংশন ডিক্লেয়ার করা হয়নি।

  1. C#-তে একই ক্লাসের অন্য কনস্ট্রাক্টর কল করা (Constructor Chaining)

  2. C#-তে স্ট্যাটিক কনস্ট্রাক্টর কখন কল হয়?

  3. C#-এ ক্লাসের মেথড কল (Call a Method) করা

  4. পাইথনে ক্লাস ইনহেরিটেন্স কীভাবে কাজ করে?