বাংলায় পিএইচপি
  • শুরুর আগে
  • ইনস্টলেশন
  • ল্যাঙ্গুয়েজ ব্যাসিকস
  • ভ্যারিয়েবল ও ডাটা টাইপস
  • কন্সট্যান্টস, এক্সপ্রেশনস ও অপারেটরস
  • কন্ট্রোল স্ট্রাকচারস
  • ফাংশনস
  • মাস্টারিং এ্যারে
  • কমন এ্যারে ফাংশনস
  • অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং
    • ক্লাস এবং অবজেক্ট
    • মেথড এবং প্রোপার্টি
    • স্ট্যাটিক ও নন-স্ট্যাটিক কনটেক্সট
    • ইনহেরিট্যান্স
    • ভিজিবিলিটি
    • কনস্ট্রাক্টর এবং ডেস্ট্রাক্টর
    • ইন্টারফেইস
    • এ্যাবস্ট্রাকশন
    • ট্রেইটস
    • ম্যাজিক মেথডস
  • নেইমস্পেইস
  • ফাইলসিস্টেম
  • ডিজাইন প্যাটার্ন
    • সিঙ্গেলটোন
    • অবজার্ভার
    • অ্যাডাপ্টার
    • ফ্যাক্টরী
    • ডিপেন্ডেন্সি ইনজেকশন
    • ফ্যাসাড
    • স্ট্রাটেজি
    • ইটারেটর
    • প্রক্সি
    • ডেকোরেটর
Powered by GitBook
On this page
  1. অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং

ইনহেরিট্যান্স

আমরা যেমন আমাদের বাবা-মার গুনাবলী বংশানুক্রমিকভাবে পাই, তেমনি ভাবে পিএইচপিতে ও একটি ক্লাস অন্য আরেকটি ক্লাস কে এক্সটেন্ড করে তার সব প্রোপার্টি বা মেথড ব্যবহার করতে পারে । এটাই ইনহেরিট্যান্স । একটি সহজ উদাহরন দেখি:

<?php

class ParentClass
{
    public $name;

    public function getName()
    {
        return $this->name;
    }
}


class ChildClass extends ParentClass
{

}

$child = new ChildClass();
$child->name = "Abul";

var_dump($child->getName());

এখানে লক্ষ্য করুন ChildClass টি ParentClass কে এক্সটেন্ড করেছে । এর ফলে ChildClass এ আমরা name বা getName() ডিফাইন না করলেও ParentClass থেকে সে এই প্রোপার্টি এবং মেথড এ্যাক্সেস করতে পারছে । এটাই সহজ ভাষায় ইনহেরিট্যান্স । এক্ষেত্রে আমরা বলতে পারি, ChildClass টি ParentClass কে ইনহেরিট করেছে । এখানে আমরা extends কিওয়ার্ডটি ব্যবহার করে বলে দেই কোন ক্লাসটি এক্সটেন্ড করছে আর কোনটি থেকে এক্সটেন্ড করা হচ্ছে । যেই ক্লাস টি এক্সটেন্ড করে, সেটিকে চাইল্ড ক্লাস এবং যেটি থেকে এক্সটেন্ড করা হয় সেটিকে প্যারেন্ট ক্লাস বলি আমরা । একটি ক্লাস যখন আরেকটি ক্লাস কে এক্সটেন্ড করে তখন প্যারেন্ট ক্লাস এর সব প্রোপার্টি এবং মেথডই চাইল্ড ক্লাস না ডিফাইন করলেও এ্যাক্সেস করতে পারবে ।

এখানে ChildClass এর name এবং getName() যে ParentClass থেকেই এসেছে তা এই উদহরনটি থেকে আরও পরিস্কারভাবে বোঝা যাবে:

<?php

class ParentClass
{
    public $name = "Name of The ParentClass";

    public function getName()
    {
        return $this->name;
    }
}


class ChildClass extends ParentClass
{

}

$child = new ChildClass();
var_dump($child->getName());

এখানে দেখুন, আমরা $name এর ভ্যালু ParentClass এ ইনিশিয়ালাইজ করেছি । ChildClass হুবহু সেই ভ্যালুই গ্রহন করেছে । সুতরাং কোন সন্দেহ নেই যে এটি ইনহেরিটেন্স এরই ফল!

Previousস্ট্যাটিক ও নন-স্ট্যাটিক কনটেক্সটNextভিজিবিলিটি

Last updated 6 years ago