পিএইচপি OOP পলিমরফিজম
পলিমরফিজম(Polymorphism) বলতে আমরা বুঝি, বিভিন্ন ক্লাসের যেসব মেথডসমূহ একই কাজে ব্যবহৃত হয় তাদের নামকরণ একই হওয়া।
পলিমরফিজম কিভাবে বাস্তবায়ন করবেন?
পলিমরফিজম(Polymorphism) বাস্তবায়নের জন্য আমরা অ্যাবস্ট্রাক্ট(abstract) ক্লাস বা ইন্টারফেস এই দুইটির মধ্যে একটি বেছে নিতে পারি।
নিম্নের উদাহরণে আমরা calcArea()
অ্যাবস্ট্রাক্ট মেথড বিশিষ্ট Shape
নামের একটি ইন্টারফেস তৈরি করবো।
<?php
interface Shape {
public function calcArea();
}
?>
এখন আমরা Circle নামে একটি ক্লাস তৈরি করবো এবং এতে Shape ইন্টারফেসটি যুক্ত করবো। এক্ষেত্রে calcArea() মেথডটি বৃত্তের পরিধি গণনা করবে।
<?php
class Circle implements Shape {
private $radius;
public function __construct($radius) {
$this->radius = $radius;
}
// calcArea বৃত্তের পরিধি গণনা করে
public function calcArea(){
echo $this->radius * $this->radius * pi();
}
}
?>
এখন আমরা Shape ইন্টারফেসটি পুনরায় Rectangle ক্লাসে যুক্ত করবো। এক্ষেত্রে calcArea() মেথডটি আয়তক্ষেত্র পরিমাপ করবে।
<?php
class Rectangle implements Shape{
private $width;
private $height;
public function __construct($width, $height){
$this->width = $width;
$this->height = $height;
}
// calcArea আয়তক্ষেত্র পরিমাপ করবেে
public function calcArea(){
echo $this->width * $this->height;
}
}
?>
এখন আমরা উপরের ক্লাস দুটির জন্য যথাক্রমে দুটি অবজেক্ট তৈরি করবো।
<?php
$circle = new Circle(5);
$rectangle = new Rectangle(5,3);
?>
এখন আমরা নিশ্চিত হতে পারি যে, তৈরিকৃত অবজেক্ট গুলো calcArea() মেথডটি ব্যবহার করে স্ব-স্ব আকৃতি পরিমাপ করবে।
এখন আমরা আকৃতি গণনা করার জন্য calcArea() মেথডটি ব্যবহার করবো।
<?php
$circle->calcArea();
$rectangle->calcArea();
?>
<?php
interface Shape {
public function calcArea();
}
class Circle implements Shape {
private $radius;
public function __construct($radius) {
$this->radius = $radius;
}
// calcArea বৃত্তের পরিধি গণনা করে
public function calcArea(){
echo $this->radius * $this->radius * pi();
}
}
class Rectangle implements Shape{
private $width;
private $height;
public function __construct($width, $height){
$this->width = $width;
$this->height = $height;
}
// calcArea আয়তক্ষেত্র পরিমাপ করবেে
public function calcArea(){
echo $this->width * $this->height;
}
}
// অবজেক্ট তৈরি
$circle = new Circle(5);
$rectangle = new Rectangle(5,3);
// আকৃতি পরিমাপ
$circle->calcArea();
echo "
";
$rectangle->calcArea();
?>
78.539816339745
15