জাভা সুপার কীওয়ার্ড কি এবং ব্যবহার - Super Keyword in JAVA Example bangla

জাভা সুপার কীওয়ার্ড কি এবং ব্যবহার - Super Keyword in JAVA Example bangla

যখন আমরা সুপার ক্লাসের ভ্যারিয়েবল, ফাংশন, কনস্ট্রাটর ব্যবহার করতে যাবো টিক তখনই আমরা সুপার কিওয়ার্ড ব্যবহার করবো।
যখন সুপার ক্লাস এবং সাব ক্লাসের ভ্যারিয়েবল, ফাংশন, কনস্ট্রাটর একই থাকবে তখন সুপার কিওয়ার্ড ব্যবহার হবে।
যদি না বুজেন তাহলে আরেকটু ভিতরে যাওয়া যাক। ধরুন আমাদের কাছে একটি ক্লাস এবং আরেকটি এর সাব ক্লাস রয়েছে। তাহলে প্রথমটি হয়ে যাবে সুপার ক্লাস। এখন আমরা সাব ক্লাস ধারা যদি কোনো অবজেক্ট তৈরী করি তাহলে নিয়ম অনুসারে সাব ক্লাসের ভ্যারিয়েবল, ফাংশন, কনস্ট্রাটর ব্যবহার করতে পারবো। কিন্তু সুপার ক্লাসের কোনো ভ্যারিয়েবল, ফাংশন, কনস্ট্রাটর ব্যবহার করতে পারবো না। তাই সাব ক্লাস ধারা সুপার ক্লাসের ভ্যারিয়েবল, ফাংশন, কনস্ট্রাটর ব্যবহার করতেই সুপার কিওয়ার্ড ব্যবহার করতে হয়।

syentex-super-keyword-bangla

চিত্রে ম্যাংগো হলো সুপার ক্লাস ও অরেঞ্জ হলো সাব ক্লাস। যেহুতু অরেঞ্জ ক্লাসটি সুপার ক্লাসকে এক্সটেন্ড (extends) করেছে তাই সুপার ক্লাসের যত ভ্যারিয়েবল, ফাংশন, কনস্ট্রাটর আছে তা সাব ক্লাস অরেঞ্জ ব্যবহার করতে পারবে।

চিত্রে অরেঞ্জ সাব ক্লাসের ভিতরে কনস্ট্রাটরে "supar();" ফাংশন দেওয়া আছে আপনি যদি এই ফাংশনটি না লিখেন জাভা কম্পাইলার নিজেই এটি লিখে দিবে। "supar();" ফাংশনটি ম্যাংগো সুপার ক্লাসের যত রকম ভ্যারিয়েবল, ফাংশন, কনস্ট্রাটর আছে সেগুলো কল করে।

চিত্রে বর্তমান অবস্থায় যদি আমরা অরেঞ্জ ক্লাসের ভিতরে x এর মান বের করি তাহলে অবশই ৫ আসবে কারণ অরেঞ্জ নিজেকে সবার আগে সে গুরুত্ব দিবে। তাই ম্যাংগো ক্লাসের x এর মান বের করতে হলে লিখতে হবে শুধুমাত্র "super.x"। চলুন কোডিং এর মাধ্যমে বিষয়টা আরো সহজ করা যাক।

ভ্যারিয়েবলের ক্ষেত্রে সুপার কিওয়ার্ড:


public class mango {
    int x=10;
    
}
class orange extends mango{
    int x=5;
    void dis()
    {
        System.out.println(x); // call own class
        System.out.println(super.x); // call mango class
    
    }
}
class ans {
    public static void main(String[] args)
    {
        orange ref=new orange();
        ref.dis();
    }
    
}



Super-Keyword-in-JAVA-Example-bangla-p1

ম্যাংগো ক্লাস ও অরেঞ্জ ক্লাসে একই ইন্টেজার ভ্যারিয়েবল "x" রয়েছে। এখন অরেঞ্জ ক্লাস দিয়ে যদি অবজেক্ট তৈরী করা হয় তাহলে অরেঞ্জ ক্লাসের "x" কে সেই অবজেক্ট কল করবে। যদি আপনি অরেঞ্জ ক্লাসের মাধ্যমে ম্যাংগো ক্লাসের "x" কে কল করতে চান তাহলে "super" বসাতে হবে।


ফাংশনের ক্ষেত্রে সুপার কিওয়ার্ড:

public class mango {
   void dis()
    {
        System.out.println("I' m supar class"); 
    
    }
    
}
class orange extends mango{
   
    void dis()
    {
        super.dis();
        System.out.println("I' m sub class"); 
    
    }
}
class ans {
    public static void main(String[] args)
    {
        orange ref=new orange();
        ref.dis();
    }
    
}



Super-Keyword-in-JAVA-Example-bangla-p2

সুপার ক্লাসের ফাংশনকে কল করার জন্য অরেঞ্জ ক্লাসে "super.dis" ব্যবহার করা হয়েছে।


কনস্ট্রাটরের ক্ষেত্রে সুপার কিওয়ার্ড:

public class mango {
   mango()
    {
        System.out.println("I' m supar class"); 
    
    }
    
}
class orange extends mango{
   
    orange()
    {
        super();
        System.out.println("I' m sub class"); 
    
    }
}
class ans {
    public static void main(String[] args)
    {
        orange ref=new orange();        
    }
    
}



Super-Keyword-in-JAVA-Example-bangla-p3

আমরা আগেই জানি ক্লাস তৈরী হলে ডিফল্ট ভাবে কন্সট্রাক্টর তৈরী হয় টিক তেমনি কন্সট্রাক্টরের ভিতরে ডিফল্ট ভাবে "supar();" ফাংশন তৈরী হয় আমরা নিজেরা তৈরী না করলে জাভার কম্পাইলার নিজেই "supar();" ফাংশন তৈরী করে। তাই "supar();" এই ফাংশন ধারা ম্যাংগো ক্লাসের কন্সট্রেটর কল হয়েছে।


প্যারামিটার কনস্ট্রাটরের ক্ষেত্রে সুপার কিওয়ার্ড:

public class mango {
   mango(int a)
    {
        System.out.println(a+" I' m supar class"); 
    
    }
    
}
class orange extends mango{
   
    orange()
    {
        super(4);
        System.out.println("I' m sub class"); 
    
    }
}
class ans {
    public static void main(String[] args)
    {
        orange ref=new orange();        
    }
    
}



Super-Keyword-in-JAVA-Example-bangla-p4

প্যারামিটার কনস্ট্রাটরের ক্ষেত্রে আমাদের অবশ্যই সুপার কিওয়ার্ড ব্যবহার করতে হবে নাহলে কম্পাইলার ভুল ম্যাসেজ দিবে। শুধমাত্র "super(ডাটা টাইপ হিসাবে মান)" বসিয়ে দিলেই এটি ম্যাংগো সুপার ক্লাসের কন্সট্রাক্টরে মান পাঠিয়ে দিবে।