আসসালামু আলাইকুম। কেমন আছেন সবাই। আজকে আমরা যে জিনিসটি নিয়ে আলোচনা করব তা হল জাভাতে ইনহেরিটেন্স। যেকোন অব্জেক্ট অরিয়েন্টেড প্রোগ্রামিং লাংগুয়েজেই এই জিনিসটি অনেক গুরুত্যপুর্ন।
ইনহেরিটেন্স বলতে বুঝায় উত্তরাধিকারি হওয়া। যেমন আপনি আপনার বাবার উত্তরাধিকারি।মানে আপনি চাইলে আপনার বাবার সম্পত্তি ব্যবহার করতে পারেন। ঠিক তেমনি প্রোগ্রামিং এ যখন একটি ক্লাস আরেকটি ক্লাসের সম্পত্তি(ভেরিয়েবল অথবা ফাংশন) ব্যবহার করে তখন তাকে ইনহেরিটেন্স বলে।
আগে জেনে নেই ইনহেরিটেন্স এর গুরুত্য কতটুকু।এর জন্য নিচের প্রোগ্রামটি দেখুনঃ
public class facebook { public void who() { System.out.println("I am the best IT company"); } }
এখানে facebook ক্লাস ডিক্লায়ার করা হয়েছে। এবং এর একটি who() নামে ফাংশন ও ডিক্লয়ার করা হয়েছে।এবার নিচের কোডটা দেখি।
public class microsoft { public void who() { System.out.println("I am the best IT company"); } }
এখানে microsoft ক্লাস ডিক্লায়ার করা হয়েছে। এবং এর একটি who() নামে ফাংশন ও ডিক্লয়ার করা হয়েছে।এবার ধরুন আমাদের এরকম facebook এবং Microsoft এর মত ১০ টি ক্লাস আছে যার প্রতিটি ক্লাস এই who() ফাংশনটি আছে এবং প্রতিটি who() ফাংশন এর কাজ একিই। অর্থাৎ “I am the best IT company” বাক্যটি প্রিন্ট করা। এবার আপানাকে কেউ এসে বলল যে প্রতিটি ক্লাসের who() ফাংসন এর যে বাক্যটি প্রিন্ট করার কথা তা না করে “Google is the best IT company” বাক্যটি প্রিন্ট করতে বলা হল। তাহলে চিন্তাই করতে পারছেন আপনাকে কত কস্ট করতে হবে।প্রতিটি ক্লাসের who() ফাংশন কে পরিবর্তন করতে হবে।যেটি অনেক সময় সাপেহ্ম এবং কস্ট সাধ্য। এর থেকে পরিত্রানের উপায়ই হল ইনহেরিটেন্স।এর জন্য আমরা নিচের ক্লাস টি লহ্ম্য করিঃ
public class apple { public void who() { System.out.println("I am the best IT company"); } }
এখানে apple নামক ক্লাস ডিক্লায়ার করা হয়েছে।এবং এর ভিতর who() নামক ফাংশন ডিক্লায়ার করা হয়েছে।
এবার আগে আনাদের লেখা facebook এবং Microsoft ক্লাসের কিছু পরিবর্ত্ন আনি।
public class facebook extends apple{ }
public class microsoft extends apple { }
অর্থাৎ আমরা শুধু who() নামক ক্লাস টা সরিয়ে দিয়েছি এবং extends কিওয়ার্ড এর সাহায্যে apple ক্লাস কে ইনহেরিট করা হয়েছে।এখানে বলে রাখা ভাল যে ক্লাসকে ইনহেরিট করা হয় তাকে বলে parent class আর যে ইনহেরিট করে তাকে বলে child class এখানে apple হল parent class facebook, microsoft হল child class। এবার আমরা আরেকটি ক্লাস তৈরি করব google নামে। দেখে নেই গুগল ক্লাসের কোডঃ
public class google { public static void main(String[] args) { facebook fb=new facebook(); microsoft ms=new microsoft(); fb.who(); ms.who(); } }
এখানে গুগল ক্লাসে facebook Microsoft ক্লাসের আলাদা আলাদা অব্জেক্ট তৈরি করা হয়েছে।পরে ওই অব্জেক্ট এর সাহায্যে who() ফাংশনকে কল করা হয়েছে। খেয়াল করলে দেখবেন যে Microsoft অথবা facebook এই দুটির কোনটিতেই কিন্তু who() ফাংশনটি লেখা নেই।তাও প্রোগ্রামটি সঠিক আউটপুট দিচ্ছেঃ
I am the best IT company
I am the best IT company
আজ এ পর্যন্তই। সবাই ভাল থাকবেন।
আমি wahid63। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 12 বছর যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 16 টি টিউন ও 40 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 0 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।
khub subidhe hochhe, thank you..