PHP-এ OOP-তে বিমূর্ত ক্লাস
ধরুন আপনার একটি ক্লাস User আছে, এবং
এটি থেকে Employee এবং Student
ক্লাসগুলি উত্তরাধিকার সূত্রে প্রাপ্ত।
এবং এটা ধরে নেওয়া হয় যে আপনি
Employee এবং Student ক্লাসের অবজেক্ট তৈরি করবেন,
কিন্তু User ক্লাসের অবজেক্ট - তৈরি করবেন না,
কারণ এই ক্লাসটি শুধুমাত্র এর
উত্তরাধিকারীদের সাধারণ বৈশিষ্ট্য এবং পদ্ধতিগুলি
গ্রুপ করার জন্য ব্যবহার করা হয়।
এই ক্ষেত্রে, User ক্লাসের অবজেক্ট তৈরি করতে
জোরপূর্বক নিষেধাজ্ঞা দেওয়া সম্ভব, যাতে
আপনি বা অন্য প্রোগ্রামার কোথাও accidentally
সেগুলি তৈরি না করেন।
এর জন্য তথাকথিত বিমূর্ত ক্লাস বিদ্যমান। বিমূর্ত ক্লাসগুলি এমন ক্লাস যেগুলি থেকে উত্তরাধিকার গ্রহণের জন্য নির্মিত। একই সময়ে, এই ধরনের ক্লাসের অবজেক্ট তৈরি করা যায় না।
একটি ক্লাসকে বিমূর্ত ঘোষণা করতে,
এর ঘোষণায় abstract কিওয়ার্ডটি
লিখতে হবে:
<?php
abstract class User
{
}
?>
সুতরাং, আসুন বিমূর্ত ক্লাস User-এর
রিয়ালাইজেশন লিখি। এটির একটি প্রাইভেট
প্রপার্টি name থাকুক, এবং এর জন্য
গেটার এবং সেটারও থাকুক:
<?php
abstract class User
{
private $name;
public function getName()
{
return $this->name;
}
public function setName($name)
{
$this->name = $name;
}
}
?>
User ক্লাসের একটি অবজেক্ট তৈরি করার চেষ্টা
করলে একটি ত্রুটি ঘটবে:
<?php
$user = new User; // একটি ত্রুটি দেবে
?>
তবে আমাদের ক্লাস থেকে উত্তরাধিকার নেওয়া
সম্ভব হবে। আসুন একটি Employee ক্লাস তৈরি করি,
যা আমাদের বিমূর্ত ক্লাস User থেকে
উত্তরাধিকার সূত্রে পাবে:
<?php
class Employee extends User
{
private $salary;
public function getSalary()
{
return $this->salary;
}
public function setSalary($salary)
{
$this->salary = $salary;
}
}
?>
Employee ক্লাসের একটি অবজেক্ট তৈরি করি -
সবকিছু কাজ করবে:
<?php
$employee = new Employee;
$employee->setName('john'); // প্যারেন্ট ক্লাসের মেথড, অর্থাৎ User ক্লাসের
$employee->setSalary(1000); // নিজস্ব মেথড, অর্থাৎ Employee ক্লাসের
echo $employee->getName(); // আউটপুট দেবে 'john'
echo $employee->getSalary(); // আউটপুট দেবে 1000
?>
একটি বিমূর্ত ক্লাস Figure তৈরি করুন,
যা একটি জ্যামিতিক
আকৃতির প্রতিনিধিত্ব করে। এটি থেকে বৃত্ত, আয়তক্ষেত্র এবং বর্গক্ষেত্রের জন্য ক্লাসগুলি উত্তরাধিকার সূত্রে পেতে দিন।