পিএইচপিতে ওওপি-তে প্যারেন্ট মেথড ওভাররাইডিং
একটি চাইল্ড ক্লাস একটি প্যারেন্ট মেথড ওভাররাইড করতে পারে একই নাম সহ একটি মেথড তৈরি করে। আসুন একটি উদাহরণ দেখি। ধরুন আমাদের নিম্নলিখিত প্যারেন্ট ক্লাস আছে:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
চলুন চাইল্ড ক্লাসে একই নামের একটি মেথড তৈরি করি:
<?php
class Student extends User {
public function setName($name) {
}
}
?>
সাধারণত, প্যারেন্ট মেথড ওভাররাইড করা প্রয়োজন যাতে সেই মেথডের আচরণ পরিবর্তন বা সম্পূরক করা যায়। আসুন আমাদের ক্ষেত্রে নামের দৈর্ঘ্য পরীক্ষা যোগ করি:
<?php
class Student extends User {
public function setName($name) {
if (strlen($name) > 0) {
$this->name = $name;
} else {
echo 'student name error';
}
}
}
?>
আসুন এটা যাচাই করব যে সত্যিই ওভাররাইড করা মেথডটিই কল হয়। প্রথমে চাইল্ড ক্লাসের একটি অবজেক্ট তৈরি করি:
<?php
$student = new Student;
?>
এখন আমাদের মেথডটি কল করি, এতে একটি সঠিক মান পাস করে:
<?php
$student->setName('john');
?>
এবং এখন মেথডটি কল করি, পাস করে একটি ভুল মান। ফলস্বরূপ আমরা একটি থ্রোন এক্সেপশন দেখতে পাব:
<?php
$student->setName(''); // ভুল
?>
User ক্লাসে
বয়সের জন্য গেটার এবং সেটার তৈরি করুন।
Employee ক্লাসে বয়সের সেটার ওভাররাইড করুন
এবং এতে একটি চেক যোগ করুন যে বয়স
18 থেকে 65 বছরের মধ্যে।