উত্তরাধিকার এবং রচনার মধ্যে পার্থক্য

উত্তরাধিকার এবং রচনার মধ্যে পার্থক্য
উত্তরাধিকার এবং রচনার মধ্যে পার্থক্য

ভিডিও: উত্তরাধিকার এবং রচনার মধ্যে পার্থক্য

ভিডিও: উত্তরাধিকার এবং রচনার মধ্যে পার্থক্য
ভিডিও: Lec-57 ডিলিট, ড্রপ এবং ট্রাঙ্কেটের মধ্যে পার্থক্য এসকিউএল | ডিবিএমএস 2024, নভেম্বর
Anonim

উত্তরাধিকার বনাম রচনা

ওপি (অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং) তে ইনহেরিটেন্স এবং কম্পোজিশন দুটি গুরুত্বপূর্ণ ধারণা পাওয়া যায়। সহজ কথায়, কম্পোজিশন এবং ইনহেরিটেন্স উভয়ই একটি শ্রেণীকে অতিরিক্ত বৈশিষ্ট্য বা আচরণ প্রদানের সাথে ডিল করে। উত্তরাধিকার হ'ল একটি শ্রেণীকে প্রসারিত করে অভিভাবক শ্রেণীর থেকে বৈশিষ্ট্য এবং আচরণের উত্তরাধিকারী হওয়ার ক্ষমতা। অন্যদিকে, কম্পোজিশন হল একটি ক্লাসের ক্ষমতা যা সদস্য ডেটা হিসাবে বিভিন্ন শ্রেণীর বস্তু ধারণ করে।

উত্তরাধিকার কি?

উপরে উল্লিখিত হিসাবে, উত্তরাধিকার হ'ল একটি শ্রেণীর ক্ষমতা যা একটি অভিভাবক শ্রেণীর থেকে প্রসারিত করে বৈশিষ্ট্য এবং আচরণের উত্তরাধিকারী হয়।উত্তরাধিকার মূলত একটি নতুন সংজ্ঞায়িত শ্রেণী দ্বারা বিদ্যমান ক্লাসের বৈশিষ্ট্য এবং আচরণকে প্রসারিত করার অনুমতি দিয়ে কোড পুনঃব্যবহার প্রদান করে। যদি A শ্রেণী B কে প্রসারিত করে, তাহলে B শ্রেণীকে অভিভাবক শ্রেণী (বা সুপার শ্রেণী) বলা হয় এবং শ্রেণী A কে শিশু শ্রেণী (বা উদ্ভূত শ্রেণী/উপ শ্রেণী) বলা হয়। এই উদাহরণের পরিস্থিতিতে, ক্লাস A সুপার ক্লাস (B) এর সমস্ত পাবলিক এবং সুরক্ষিত বৈশিষ্ট্য এবং পদ্ধতিগুলি উত্তরাধিকারী হবে। সাবক্লাসটি ঐচ্ছিকভাবে প্যারেন্ট ক্লাস থেকে উত্তরাধিকারসূত্রে প্রাপ্ত আচরণকে (পদ্ধতিতে নতুন বা বর্ধিত কার্যকারিতা প্রদান) ওভাররাইড করতে পারে।

উত্তরাধিকার OOP-তে একটি "is-a" সম্পর্ককে উপস্থাপন করে। এর মানে মূলত A হল B. অন্য কথায়, B একটি নির্দিষ্ট বাস্তব জগতের সত্তার সাধারণ বর্ণনা সহ শ্রেণী হতে পারে কিন্তু A একটি নির্দিষ্ট বিশেষত্ব উল্লেখ করে। একটি বাস্তব বিশ্বের প্রোগ্রামিং সমস্যায়, কর্মচারী শ্রেণী তৈরি করতে ব্যক্তি শ্রেণী বাড়ানো যেতে পারে। একে বলে স্পেশালাইজেশন। তবে আপনি প্রথমে কর্মচারী শ্রেণীও তৈরি করতে পারেন এবং তারপর এটিকে একটি ব্যক্তি শ্রেণিতেও সাধারণীকরণ করতে পারেন (i.e সাধারণীকরণ)। এই উদাহরণে, কর্মচারীর কাছে ব্যক্তির সমস্ত বৈশিষ্ট্য এবং আচরণ থাকবে (অর্থাৎ কর্মচারীও একজন ব্যক্তি) এবং কিছু অতিরিক্ত কার্যকারিতাও থাকতে পারে (তাই, ব্যক্তি একজন কর্মচারী নয়)৷

কম্পোজিশন কি?

কম্পোজিশন হল একটি ক্লাসের সদস্যের ডেটা হিসাবে বিভিন্ন শ্রেণীর বস্তু ধারণ করার ক্ষমতা। উদাহরণ স্বরূপ, ক্লাস A সদস্য হিসাবে B শ্রেণীর একটি বস্তু থাকতে পারে। এখানে, B তে সংজ্ঞায়িত সমস্ত পাবলিক পদ্ধতি (বা ফাংশন) A ক্লাসের মধ্যে কার্যকর করা যেতে পারে। ক্লাস A ধারক হয়ে যায়, যখন B শ্রেণী অন্তর্ভুক্ত শ্রেণীতে পরিণত হয়। কম্পোজিশনকে কন্টেইনারশিপও বলা হয়। এই উদাহরণে, এটা বলা যেতে পারে যে ক্লাস A ক্লাস B দ্বারা গঠিত। OOP-তে, কম্পোজিশন একটি "has-a" সম্পর্ককে উপস্থাপন করে। এটি লক্ষ করা গুরুত্বপূর্ণ যে, যদিও ধারকটিতে অন্তর্ভুক্ত ক্লাসের সমস্ত পাবলিক পদ্ধতিগুলি চালানোর অ্যাক্সেস রয়েছে, এটি পরিবর্তন করতে বা অতিরিক্ত কার্যকারিতা প্রদান করতে সক্ষম নয়৷ যখন এটি একটি বাস্তব বিশ্বের প্রোগ্রামিং সমস্যা আসে, ক্লাস টেক্সটবক্সের একটি অবজেক্ট ক্লাস ফর্মের মধ্যে থাকতে পারে এবং এইভাবে বলা যেতে পারে যে একটি ফর্মটিতে একটি পাঠ্যবক্স রয়েছে (বা বিকল্পভাবে, একটি ফর্ম একটি পাঠ্যবক্সের সমন্বয়ে গঠিত)।

উত্তরাধিকার এবং রচনার মধ্যে পার্থক্য কী?

যদিও ইনহেরিটেন্স এবং কম্পোজিশন দুটি ওওপি ধারণা, তারা প্রোগ্রামারকে যা অর্জন করতে দেয় তাতে বেশ ভিন্ন। উত্তরাধিকার হ'ল একটি শ্রেণির জন্য একটি বর্ধিতকরণের মাধ্যমে একটি অভিভাবক শ্রেণি থেকে বৈশিষ্ট্য এবং আচরণের উত্তরাধিকারী হওয়ার ক্ষমতা, যখন কম্পোজিশন হল একটি শ্রেণির সদস্যের ডেটা হিসাবে বিভিন্ন শ্রেণীর বস্তু ধারণ করার ক্ষমতা। যদি একটি শ্রেণী প্রসারিত হয়, তবে এটি সমস্ত পাবলিক এবং সুরক্ষিত বৈশিষ্ট্য/আচরণ উত্তরাধিকার সূত্রে পায় এবং সেই আচরণগুলি সাবক্লাস দ্বারা ওভাররাইড করা হতে পারে। কিন্তু যদি একটি শ্রেণী অন্যটিতে থাকে তবে ধারকটি অন্তর্ভুক্তটিতে আচরণ পরিবর্তন বা যুক্ত করার ক্ষমতা পায় না। OOP-তে উত্তরাধিকার একটি "is-a" সম্পর্ককে প্রতিনিধিত্ব করে, যখন কম্পোজিশন একটি "has-a" সম্পর্ককে প্রতিনিধিত্ব করে৷

প্রস্তাবিত: