1. তিমি এবং গরু
এখানে একটি আকর্ষণীয় প্রাণীবিদ্যার তথ্য রয়েছে: একটি গরু একটি তিমির চেয়ে অনেক কাছাকাছি, উদাহরণস্বরূপ, একটি জলহস্তী পোটামাসের থেকে। দেখা যাচ্ছে যে গরু এবং তিমি তুলনামূলকভাবে নিকটাত্মীয়।
এখানে দেখুন. চলুন আপনাকে পলিমরফিজম সম্পর্কে বলি — OOP এর আরেকটি শক্তিশালী টুল । এর চারটি বৈশিষ্ট্য রয়েছে।
2. উত্তরাধিকার একটি নিরাময় নয়
Cow
কল্পনা করুন যে আপনি একটি খেলার জন্য একটি ক্লাস লিখেছেন । এর অনেক ক্ষেত্র এবং পদ্ধতি রয়েছে। এই শ্রেণীর বস্তু বিভিন্ন জিনিস করতে পারে: হাঁটা, খাওয়া এবং ঘুম। গরুও হাঁটার সময় বেজে ওঠে। ধরুন আপনি ক্লাসের সবকিছুকে ক্ষুদ্রতম বিশদে বাস্তবায়ন করেছেন।
এবং তারপরে আপনার ক্লায়েন্ট এসে বলে যে সে একটি নতুন গেমের স্তর প্রকাশ করতে চায়, যেখানে সমস্ত ক্রিয়া সমুদ্রে ঘটে এবং প্রধান চরিত্রটি একটি তিমি।
আপনি একটি Whale
ক্লাস ডিজাইন করা শুরু করেন এবং বুঝতে পারেন যে এটি ক্লাস থেকে সামান্য ভিন্ন Cow
। উভয় শ্রেণীর যুক্তি খুবই অনুরূপ এবং আপনি উত্তরাধিকার ব্যবহার করার সিদ্ধান্ত নেন।
Cow
অভিভাবক শ্রেণীর ভূমিকা নেওয়ার জন্য ক্লাসটি আদর্শ: এতে সমস্ত প্রয়োজনীয় পরিবর্তনশীল এবং পদ্ধতি রয়েছে । আমাদের যা করতে হবে তা হল তিমিকে সাঁতার কাটার ক্ষমতা দেওয়া। কিন্তু একটি সমস্যা আছে: আপনার তিমির পা, শিং এবং একটি ঘণ্টা আছে। সর্বোপরি, এই কার্যকারিতা Cow
ক্লাসের ভিতরে প্রয়োগ করা হয়। এখানে কি করা যায়?
3. পদ্ধতি ওভাররাইডিং
পদ্ধতি ওভাররাইডিং আমাদের উদ্ধারে আসে। যদি আমরা এমন একটি পদ্ধতি উত্তরাধিকার সূত্রে পেয়ে থাকি যা আমাদের নতুন ক্লাসে আমরা যা চাই তা পুরোপুরি করে না, আমরা সেই পদ্ধতিটিকে অন্য একটি দিয়ে প্রতিস্থাপন করতে পারি।
এটা কিভাবে করা হয়? আমাদের বংশধর শ্রেণীতে, আমরা অভিভাবক শ্রেণীর পদ্ধতি হিসাবে একই পদ্ধতি ঘোষণা করি যা আমরা ওভাররাইড করতে চাই। আমরা এটিতে আমাদের নতুন কোড লিখি। এবং এটিই - এটি যেন পিতামাতার ক্লাসে পুরানো পদ্ধতিটি বিদ্যমান নেই।
এটা এভাবে কাজ করে:
কোড | বর্ণনা |
---|---|
|
|
|
এই কোডটি স্ক্রিনে নিম্নলিখিত পাঠ্য প্রদর্শন করে:
|
|
এই কোডটি স্ক্রিনে নিম্নলিখিতগুলি প্রদর্শন করে:
|
ক্লাসের উত্তরাধিকারী হওয়ার পরে Cow
এবং printName
পদ্ধতিটি ওভাররাইড করার পরে, Whale
ক্লাসে আসলে নিম্নলিখিত ডেটা এবং পদ্ধতিগুলি রয়েছে:
|
আমরা কোন পুরানো পদ্ধতি সম্পর্কে জানি না। |
GO TO FULL VERSION