- উত্তরাধিকারের বৈশিষ্ট্য
- যাজকতন্ত্র
- পলিমরফিজ্ম
- উত্তরাধিকার প্রকার
- অনন্য উত্তরাধিকার
- বহু-স্তরের উত্তরাধিকার
- শ্রেণিবদ্ধ উত্তরাধিকার
- হাইব্রিড উত্তরাধিকার
- একাধিক উত্তরাধিকার
- একটি বেস শ্রেণি থেকে উত্তরাধিকার প্রকার
- জনসাধারণের উত্তরাধিকার
- উত্তরাধিকার সুরক্ষিত
- ব্যক্তিগত উত্তরাধিকার
- উদাহরণ
- পাইথন উদাহরণ
- সি ++ এর উদাহরণ
- তথ্যসূত্র
অবজেক্ট - ওরিয়েন্টেড প্রোগ্রামিং- এ উত্তরাধিকার হ'ল সাধারণ থেকে নির্দিষ্ট করে শ্রেণিবিন্যাসে অবজেক্টগুলি সংগঠিত করার একটি উপায়। এটি একটি গ্যাজেট যা কোনও শ্রেণিটিকে অন্য শ্রেণিতে প্রসারিত করার জন্য ব্যবহৃত হয়, যা অ্যানালগাসিক সম্পাদন সংরক্ষণ করে।
বেশিরভাগ শ্রেণিভিত্তিক অবজেক্ট-ওরিয়েন্টেড ভাষায়, উত্তরাধিকারের মাধ্যমে তৈরি করা একটি বস্তুকে চাইল্ড অবজেক্ট বলা হয়, প্যারেন্ট অবজেক্টের সমস্ত বৈশিষ্ট্য এবং আচরণ পেয়ে যায়।
অবজেক্ট অরিয়েন্টেশনে উত্তরাধিকারের সহজ প্রমাণ। উত্স: প্লাক / সিসি ক্রিয়েটিভ কমন্স সিসি 1.0 ইউনিভার্সাল পাবলিক ডোমেন
অতএব, এটি এমন একটি গুণ যা বিভিন্ন শ্রেণীর মধ্যে সম্পর্কের প্রতিনিধিত্ব করে। উত্তরাধিকার শ্রেণিটিকে অন্য শ্রেণীর মতো একই আচরণ করার এবং নির্দিষ্ট প্রয়োজনের জন্য একটি বিশেষ ক্রিয়া সরবরাহ করার জন্য সেই আচরণটি প্রসারিত বা অভিযোজিত করার অনুমতি দেয়।
উত্তরাধিকার হ'ল বস্তুগুলির প্রতিনিধিত্ব করতে সহায়তা করতে পারে যাগুলির কাজ করার ক্ষেত্রে কিছু পার্থক্য রয়েছে এবং কিছু মিল রয়েছে। আপনি অবজেক্টগুলিতে সাধারণ সমস্ত কার্যকারিতা বেস ক্লাসে রেখে দিতে পারেন এবং তারপরে আপনার নিজস্ব কাস্টম কার্যকারিতা সহ এক বা একাধিক সাবক্লাসটি সংজ্ঞায়িত করতে পারেন।
উত্তরাধিকারের বৈশিষ্ট্য
উত্তরাধিকার হ'ল অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের অন্যতম প্রধান বৈশিষ্ট্য যা বিদ্যমান ক্লাস থেকে নতুন শ্রেণির সংজ্ঞা দিতে ব্যবহৃত হয়।
এটি হ'ল নতুন ক্লাসগুলি বিদ্যমান বেস ক্লাসগুলি থেকে নতুন বৈশিষ্ট্য যুক্ত করে নেওয়া যায়। আপনাকে স্ক্র্যাচ থেকে লিখতে হবে না। সুতরাং, উত্তরাধিকার বিদ্যমান কোডটি সহজেই পুনরায় ব্যবহার করার একটি উপায় সরবরাহ করে।
আপনার যদি ইতিমধ্যে একটি ক্লাস থাকে যা আপনি যা চান তার প্রায় সব কিছু করে, আপনি একটি সাবক্লাস তৈরি করতে পারেন যাতে এর কিছু আচরণ আংশিকভাবে ওভাররাইড করা হয়, বা সম্ভবত কিছু নতুন কার্যকারিতা যুক্ত হয়।
একটি উত্পন্ন শ্রেণি নীচের ব্যতীত বেস শ্রেণীর সমস্ত পদ্ধতি উত্তরাধিকার সূত্রে প্রাপ্ত:
- বেস ক্লাসের কনস্ট্রাক্টর, ডেস্ট্রাক্টর এবং কপি কনস্ট্রাক্টর।
- বেস ক্লাস থেকে অপারেটরগুলি ওভারলোড হয়েছে।
- বেস শ্রেণি বান্ধব ফাংশন।
যাজকতন্ত্র
পারিবারিক গাছ যেমন করে, উত্তরাধিকার শ্রেণীর শ্রেণিবিন্যাস গঠনে কাজ করে। এটি লক্ষ করা গুরুত্বপূর্ণ যে একটি বেস শ্রেণীর জন্য নির্ধারিত বৈশিষ্ট্যগুলি উত্পন্ন শ্রেণিতে স্বয়ংক্রিয়ভাবে উপস্থিত হবে। এছাড়াও, বেস শ্রেণীর জন্য পদ্ধতিগুলি ডেরিভেটিভগুলির জন্য কাজ করবে।
একটি শ্রেণি বলা হয় যে শ্রেণীটি তার উত্তরাধিকার সূত্রে প্রাপ্ত শ্রেণীর একটি সাবক্লাস। অন্যদিকে, এই শ্রেণিটি আপনার সুপারক্লাস হবে। সর্বাধিক জেনেরিক শ্রেণিকে বেস শ্রেণি হিসাবে উল্লেখ করা যেতে পারে, যেহেতু এটি শ্রেণিবিন্যাসের গোড়ায় রয়েছে।
পলিমরফিজ্ম
স্থিতিশীল প্রকার সহ কিছু ভাষায় উত্তরাধিকার খুব জনপ্রিয়, কারণ এটি প্রোগ্রামারকে স্থির ধরণের কিছু বিধিনিষেধ এড়াতে দেয়।
যে কোনও বস্তু অন্য বস্তু থেকে উত্তরাধিকার সূত্রে প্রাপ্ত হয় তাকে সেই বস্তুর একটি উপপ্রকার হিসাবে বিবেচনা করা হয়। একটি উদাহরণ হতে পারে "প্রশিক্ষক" এবং "ছাত্র" অবজেক্টস, যার প্রত্যেকটি "ব্যক্তি" থেকে উত্তরাধিকার সূত্রে প্রাপ্ত।
যদি প্রশিক্ষক এবং শিক্ষার্থী একই ব্যক্তির ধরণের হয় তবে আপনি এমন একটি ফাংশন লিখতে পারেন যা ব্যক্তি টাইপটিকে পরামিতি হিসাবে গ্রহণ করে এবং যা প্রশিক্ষক এবং শিক্ষার্থী অবজেক্টগুলিতে কাজ করে, কারণ উভয়ই ব্যক্তি উত্তরাধিকারী।
উত্তরাধিকার প্রকার
অনন্য উত্তরাধিকার
যখন কোনও উত্পন্ন শ্রেণি একক বেস শ্রেণীর বৈশিষ্ট্য এবং আচরণের উত্তরাধিকারী হয়। অর্থাত, একটি শ্রেণি কেবল একটি অন্য শ্রেণিতে বিস্তৃত।
বহু-স্তরের উত্তরাধিকার
গ্যাজেটটিতে উল্লেখ করা হয়েছে যেখানে আপনি উত্পন্ন শ্রেণীর কাছ থেকে উত্তরাধিকারী হয়ে উঠতে পারেন, এই উত্পন্ন শ্রেণিকে নতুন শ্রেণীর জন্য বেস শ্রেণি তৈরি করে। এটি হ'ল ফলস্বরূপ যখন একটি উদ্ভূত শ্রেণি তৈরি হয় অন্য উত্পন্ন ক্লাস থেকে।
শ্রেণিবদ্ধ উত্তরাধিকার
এই উত্তরাধিকার সূত্রে, অনেক উপশ্রেণী একক শ্রেণীর উত্তরাধিকার সূত্রে প্রাপ্ত। এটি হ'ল, যখন একক বেস শ্রেণি একাধিক উত্স প্রাপ্ত শ্রেণীর দ্বারা উত্তরাধিকার সূত্রে প্রাপ্ত হয়।
হাইব্রিড উত্তরাধিকার
পূর্ববর্তী তিনটি উত্তরাধিকারের যেকোন একক (একক, শ্রেণিবদ্ধ এবং বহুস্তর) একত্রিত হলে এটি ফলস্বরূপ উত্তরাধিকার।
একাধিক উত্তরাধিকার
এটি উত্তরাধিকারের চিত্রের সাথে মিলে যায় যখন কোনও শ্রেণি একাধিক সুপারক্লাস থেকে উত্তরাধিকার সূত্রে আসে। এই জাতীয় উত্তরাধিকারের অপূর্ণতা হ'ল উদ্ভূত শ্রেণিকে দুটি বেস ক্লাসের উপর নির্ভরতা পরিচালনা করতে হবে।
অন্যদিকে, এই ধরণের উত্তরাধিকার প্রোগ্রামারগুলিকে একাধিক শ্রেণির এবং তাদের সম্পর্কিত অনুক্রমের দিকগুলি একত্রিত করে এমন ক্লাস তৈরি করার অনুমতি দেয়।
একটি বেস শ্রেণি থেকে উত্তরাধিকার প্রকার
জনসাধারণের উত্তরাধিকার
যখন কোনও ক্লাস পাবলিক বেস ক্লাস থেকে উদ্ভূত হয়, বেস ক্লাসের পাবলিক সদস্যরা ডেরিভড ক্লাসের পাবলিক মেম্বার হয় এবং বেস ক্লাসের সুরক্ষিত সদস্যরা ডেরিভড ক্লাসের সুরক্ষিত সদস্য হয়ে যায়।
একটি সুপারক্লাসের ব্যক্তিগত সদস্যরা কখনই সরাসরি উত্পন্ন শ্রেণীর থেকে অ্যাক্সেসযোগ্য হয় না, তবে বেস ক্লাসের জনসাধারণ এবং সুরক্ষিত সদস্যদের কল করে এটি অ্যাক্সেস করা যায়।
উত্তরাধিকার সুরক্ষিত
আপনি যখন কোনও শ্রেণি তৈরি করেন যা একটি সুরক্ষিত সুপারক্লাস থেকে উত্তরাধিকার সূত্রে আসে, এই সুপারক্লাসের সর্বজনীন এবং সুরক্ষিত উভয় সদস্যই উদ্ভূত শ্রেণীর সুরক্ষিত সদস্য হয়ে উঠবেন।
ব্যক্তিগত উত্তরাধিকার
যখন একটি সাবক্লাস একটি বেসরকারী সুপারক্লাস থেকে তৈরি করা হবে, তখন এই সুপারক্লাসের সর্বজনীন এবং সুরক্ষিত সদস্যগণ সাবক্লাসের ব্যক্তিগত সদস্য হয়ে উঠবেন।
উদাহরণ
পাইথন উদাহরণ
উত্তরাধিকারের নীতিটি কীভাবে কাজ করে তা দেখাতে আমরা পাইথন প্রোগ্রামিং ভাষায় রোবট বা আরও ভাল ক্লাসের রোবট নেব। এটি করার জন্য, রোবটমডিকো (ফিজিশিয়ানরোবোট) নামে একটি শ্রেণি নির্দিষ্ট করা হবে, যা রোবট সুপারক্লাস থেকে প্রাপ্ত।
আপনি যদি রোবটমিডিকো ক্লাসের কোডটি দেখেন তবে দেখতে পাবেন যে এই শ্রেণিতে কোনও বৈশিষ্ট্য বা পদ্ধতি সংজ্ঞায়িত হয়নি।
যেহেতু রোবটমেডিকো ক্লাসটি রোবটের একটি সাবক্লাস, তাই এই ক্ষেত্রে __init__ এবং say_hi পদ্ধতি উভয়েরই উত্তরাধিকার সূত্রে প্রাপ্ত। এই পদ্ধতিগুলি উত্তরাধিকারী করার অর্থ হ'ল এগুলি এমনভাবে ব্যবহার করা যেতে পারে যা তারা রোবটম্যাডিকো শ্রেণিতে সংজ্ঞায়িত করা হয়েছিল।
রোবটমেডিকোর একটি উদাহরণ তৈরি করা হলে, __init__ ফাংশন একটি নামের বৈশিষ্ট্যও তৈরি করবে। পূর্ববর্তী কোডের ফলাফল হিসাবে দেখা যাবে, রোবটম্যাডিকোর অবজেক্ট "y" তে প্রয়োগ_ও পদ্ধতিটি প্রয়োগ করা যেতে পারে।
সি ++ এর উদাহরণ
একটি শ্রেণি একাধিক শ্রেণীর কাছ থেকে উত্তরাধিকারী হতে পারে যার অর্থ এটি একাধিক সুপারক্লাস থেকে ডেটা এবং ফাংশন উত্তরাধিকারী হতে পারে। উদ্ভূত শ্রেণীর সংজ্ঞা দিতে, বেস ক্লাসগুলি নির্দিষ্ট করার জন্য আপনি একটি শ্রেণিবদ্ধ তালিকা ব্যবহার করেন।
সি ++ তে একটি শ্রেণিবৃত্তি তালিকা এক বা একাধিক বেস শ্রেণীর নাম দেয় এবং নিম্নলিখিত ফর্মটি রয়েছে: শ্রেণি থেকে প্রাপ্ত শ্রেণি: অ্যাক্সেস-স্পেসিফায়ার বেস-ক্লাস, যেখানে অ্যাক্সেস-স্পেসিফায়ার পাবলিক, সুরক্ষিত বা ব্যক্তিগত এবং বেস-ক্লাস হয় পূর্বনির্ধারিত শ্রেণীর নাম। অ্যাক্সেস-স্পেসিফায়ার ব্যবহার না করা থাকলে, ডিফল্টরূপে ব্যক্তিগত নেওয়া হয়।
সুপারক্লাস "শেপ" এবং এর উত্পন্ন শ্রেণি "আয়তক্ষেত্র" নিম্নলিখিত হিসাবে বিবেচনা করা যেতে পারে:
উপরের কোডটি সংকলিত এবং সম্পাদন করা হলে, নিম্নলিখিত আউটপুটটি ঘটে: "মোট অঞ্চল: 35"।
তথ্যসূত্র
- ডেভ ব্রানসচওইগ (2020)। উত্তরাধিকার ও পলিমারফিজম। রেবাস সম্প্রদায় থেকে নেওয়া: press.rebus.commune।
- পাইথন কোর্স (2020)। উত্তরাধিকার। থেকে নেওয়া: পাইথন-কোর্স.ইইউ।
- ডেটা মেন্টর (2020)। উত্তরাধিকার। থেকে নেওয়া: datamentor.io।
- টিউটোরিয়াল পয়েন্ট (2020)। সি ++ উত্তরাধিকার। থেকে নেওয়া: tutorialspPoint.com।
- নেট-তথ্য (2020)। উত্তরাধিকারের বিভিন্ন প্রকার। নেট: ইনফরমেশন ডটকম থেকে নেওয়া।