Inheritance, Encapsulation, Polymorphism

PHP একটি শক্তিশালী প্রোগ্রামিং ভাষা, যেখানে আমরা OOP (Object-Oriented Programming) ব্যবহার করে বড় বড় প্রজেক্ট সহজভাবে তৈরি করতে পারি। OOP এর তিনটি গুরুত্বপূর্ণ ধাপ হলো Inheritance, Encapsulation, এবং Polymorphism। আজ আমরা এগুলো সহজ উদাহরণ দিয়ে বুঝবো।
Inheritance (উত্তরাধিকার)
Inheritance মানে হলো, একটি ক্লাস (Parent) এর বৈশিষ্ট্য এবং ফাংশনগুলো আরেকটি ক্লাস (Child) ব্যবহার করতে পারে। ধরুন, আপনি “গাড়ি” নামের একটি ক্লাস বানালেন। পরে যদি আপনি “বাইকার” বা “লিমোজিন” ক্লাস বানান, তারা “গাড়ি” ক্লাসের বৈশিষ্ট্য ব্যবহার করতে পারবে।
উদাহরণ:
<?php
class Car {
public $brand;
public function honk() {
echo "বিপ! বিপ!";
}
}
// Bike ক্লাস Car থেকে উত্তরাধিকার পেয়েছে
class Bike extends Car {
public function ride() {
echo "বাইক চলছে।";
}
}
$myBike = new Bike();
$myBike->brand = "Hero";
echo $myBike->brand; // Hero
$myBike->honk(); // বিপ! বিপ!
$myBike->ride(); // বাইক চলছে।
?>
কী শিখলাম:
Bike ক্লাস Car ক্লাস থেকে সব ফাংশন ও প্রপার্টি ব্যবহার করতে পারে।
কোড পুনরায় ব্যবহার করা সহজ হয়ে যায়।
Encapsulation (সংরক্ষণ)
Encapsulation হলো, আমাদের ডেটা (প্রপার্টি) কে প্রাইভেট বা প্রটেক্টেড রাখার প্রক্রিয়া। এতে করে বাইরে থেকে সরাসরি ডেটা পরিবর্তন করা যায় না, বরং getter ও setter মেথড ব্যবহার করে ডেটা অ্যাক্সেস করতে হয়।
উদাহরণ:
<?php
class BankAccount {
private $balance = 0; // সরাসরি অ্যাক্সেস সম্ভব নয়
// ব্যালেন্স চেক করার মেথড
public function getBalance() {
return $this->balance;
}
// টাকা ডিপোজিট করার মেথড
public function deposit($amount) {
if($amount > 0) {
$this->balance += $amount;
}
}
}
$account = new BankAccount();
$account->deposit(500);
echo $account->getBalance(); // 500
?>
কী শিখলাম:
ডেটা সুরক্ষিত থাকে।
প্রোগ্রামের নিরাপত্তা বাড়ে।
Polymorphism (বহুরুপতা)
Polymorphism মানে একটি ফাংশন বা অবজেক্ট একাধিক রূপে ব্যবহার করা যায়। সাধারণভাবে, একই মেথডের বিভিন্ন ক্লাসে আলাদা আচরণ দেখানোর ক্ষমতা।
উদাহরণ:
<?php
class Animal {
public function sound() {
echo "কিছু শব্দ...";
}
}
class Dog extends Animal {
public function sound() {
echo "ভূঃ! ভূঃ!";
}
}
class Cat extends Animal {
public function sound() {
echo "মিঁয়াও! মিঁয়াও!";
}
}
$dog = new Dog();
$cat = new Cat();
$dog->sound(); // ভূঃ! ভূঃ!
$cat->sound(); // মিঁয়াও! মিঁয়াও!
?>
কী শিখলাম:
একই মেথডের নাম থাকলেও, ক্লাস অনুযায়ী আলাদা ফলাফল পাওয়া যায়।
কোড আরও ফ্লেক্সিবল ও রিইউজেবল হয়।
দৈনন্দিন জীবনের উদাহরণ
Inheritance:
বাবা-মায়ের বৈশিষ্ট্য বাচ্চাদের মধ্যে চলে আসে। যেমন, চোখের রঙ বা উচ্চতা।Encapsulation:
ব্যাংক অ্যাকাউন্টের পিন বা ব্যালেন্স বাইরে থেকে সরাসরি দেখানো বা পরিবর্তন করা যায় না।Polymorphism:
এক টেলিভিশন রিমোট দিয়ে বিভিন্ন চ্যানেল নিয়ন্ত্রণ করা যায়। প্রতিটি চ্যানেল আলাদা অনুষ্ঠান দেখায়।
সংক্ষেপে
| বিষয় | ব্যাখ্যা |
| Inheritance | Parent ক্লাসের বৈশিষ্ট্য ও ফাংশন Child ক্লাসে ব্যবহার করা। |
| Encapsulation | ডেটা প্রাইভেট রাখা ও Getter/Setter ব্যবহার করা। |
| Polymorphism | একই ফাংশন নামের আলাদা আচরণ। |
PHP তে OOP শিখলে আপনার কোড পুনঃব্যবহারযোগ্য, নিরাপদ ও ফ্লেক্সিবল হয়ে যায়। নতুনদের জন্য প্রথমে ছোট উদাহরণ নিয়ে প্র্যাকটিস করা সবচেয়ে ভালো।




