Method Overloading এবং Method Overriding এর মধ্যে পার্থক্য কী?

Java এর OOPs Concepts সম্পর্কিত প্রশ্নাবলী - জাভা ইন্টারভিউ প্রশ্ন (Java Interview Questions) - Java Technologies

1.2k

Method Overloading এবং Method Overriding জাভা প্রোগ্রামিং ভাষায় পলিমরফিজমের দুটি গুরুত্বপূর্ণ অংশ। এই দুটি বৈশিষ্ট্যই একই নামের মেথডকে ব্যবহারের মাধ্যমে বিভিন্ন আচরণ প্রদান করে, তবে তাদের মধ্যে মূল পার্থক্য আছে।

1. Method Overloading (মেথড ওভারলোডিং)

  • বর্ণনা: মেথড ওভারলোডিং হল একটি প্রক্রিয়া যেখানে একটি ক্লাসে একই নামের একাধিক মেথড থাকে, কিন্তু তাদের প্যারামিটার সংখ্যা বা টাইপ ভিন্ন হয়। অর্থাৎ, একই নামের মেথড বিভিন্ন আর্গুমেন্টের সাথে ব্যবহার করা হয়।
  • কী পরিবর্তন হয়:
    • মেথডের নাম একই থাকে, কিন্তু প্যারামিটার (সংখ্যা, টাইপ, বা আর্ডার) পরিবর্তিত হয়।
    • রিটার্ন টাইপ পরিবর্তন করা সম্ভব নয়।
    • এটি কম্পাইল টাইম (স্ট্যাটিক) পলিমরফিজম।
  • উদাহরণ:

    class Calculator {
        // Method to add two integers
        public int add(int a, int b) {
            return a + b;
        }
    
        // Overloaded method to add three integers
        public int add(int a, int b, int c) {
            return a + b + c;
        }
        
        // Overloaded method with different parameter types
        public double add(double a, double b) {
            return a + b;
        }
    }
    

    এখানে, add মেথড তিনটি ভিন্ন ভিন্ন প্যারামিটার (সংখ্যা এবং টাইপ) নিয়ে ওভারলোড করা হয়েছে।

2. Method Overriding (মেথড ওভাররাইডিং)

  • বর্ণনা: মেথড ওভাররাইডিং হল একটি প্রক্রিয়া যেখানে একটি সাবক্লাস (child class) তার সুপারক্লাস (parent class) থেকে একটি মেথডকে পুনরায় সংজ্ঞায়িত (redefine) করে। এটি মূলত সুপারক্লাসের মেথডের আচরণ পরিবর্তন করতে ব্যবহৃত হয়।
  • কী পরিবর্তন হয়:
    • মেথডের নাম, প্যারামিটার, এবং রিটার্ন টাইপ একই থাকে।
    • এটি রানটাইম (ডাইনামিক) পলিমরফিজম।
    • @Override অ্যানোটেশন ব্যবহার করা হয়।
  • উদাহরণ:

    class Animal {
        // Parent class method
        public void sound() {
            System.out.println("Some animal makes a sound");
        }
    }
    
    class Dog extends Animal {
        // Overriding the parent class method
        @Override
        public void sound() {
            System.out.println("Bark");
        }
    }
    
    class TestOverriding {
        public static void main(String[] args) {
            Animal myAnimal = new Dog();  // Upcasting
            myAnimal.sound();  // Output: Bark
        }
    }
    

    এখানে, Dog ক্লাসে sound() মেথডটি Animal ক্লাস থেকে ওভাররাইড করা হয়েছে এবং এর আচরণ পরিবর্তন করা হয়েছে।


Method Overloading এবং Method Overriding এর মধ্যে পার্থক্য:

বৈশিষ্ট্যMethod OverloadingMethod Overriding
নামএকই নামের মেথড বিভিন্ন প্যারামিটার সহ ব্যবহৃত হয়একই নাম, প্যারামিটার এবং রিটার্ন টাইপ সহ মেথড রিপ্লেস করা হয়
প্যারামিটারপ্যারামিটার সংখ্যা বা টাইপ পরিবর্তন হয়প্যারামিটার সংখ্যা বা টাইপ পরিবর্তন হয় না
রিটার্ন টাইপরিটার্ন টাইপ পরিবর্তন করা যায় নারিটার্ন টাইপ একই থাকে
পলিমরফিজমকম্পাইল টাইম (স্ট্যাটিক) পলিমরফিজমরানটাইম (ডাইনামিক) পলিমরফিজম
অ্যাক্সেস মডিফায়ারকোন সমস্যা নেইপ্যারেন্ট ক্লাসের মেথডে অ্যাক্সেস মডিফায়ারটি কমপক্ষে সাবক্লাসের মেথডের মতো হতে হবে
অ্যানোটেশন@Override ব্যবহার করা হয় না@Override অ্যানোটেশন ব্যবহৃত হয়
  • Method Overloading: একই নামের মেথড, কিন্তু প্যারামিটার সংখ্যা বা টাইপ ভিন্ন। এটি স্ট্যাটিক পলিমরফিজম।
  • Method Overriding: সাবক্লাসে সুপারক্লাসের মেথড পুনঃসংজ্ঞায়িত করা, এবং এটি রানটাইম পলিমরফিজম তৈরি করে।

এটি প্রোগ্রামিংয়ে গুরুত্বপূর্ণ পদ্ধতি হিসেবে ব্যবহার করা হয় এবং কোডের পুনঃব্যবহারযোগ্যতা এবং নমনীয়তা বৃদ্ধি করে।

Content added By
Promotion

Are you sure to start over?

Loading...