কম্পিউটার টিউটোরিয়াল

জাভায় কম্পাইল-টাইম এবং রান-টাইম পলিমরফিজমের পার্থক্য


পলিমরফিজম (Polymorphism) হলো একই টাস্ক একাধিকভাবে করার ক্ষমতা। জাভায় দুই ধরনের পলিমরফিজম রয়েছে:

  • কম্পাইল-টাইম পলিমরফিজম (Static Binding): মেথড ওভারলোডিং (Method Overloading)। বাইন্ডিং কম্পাইল টাইমে হয়। ইনহেরিট্যান্স প্রয়োজন নেই।
  • রান-টাইম পলিমরফিজম (Dynamic Binding): মেথড ওভাররাইডিং (Method Overriding)। বাইন্ডিং রান টাইমে হয়। ইনহেরিট্যান্স প্রয়োজন।
ক্র. নংবিষয়কম্পাইল-টাইমরান-টাইম
১বাইন্ডিংস্ট্যাটিক (কম্পাইল টাইম)ডাইনামিক (রান টাইম)
২ইনহেরিট্যান্সপ্রয়োজন নেইপ্রয়োজন
৩উদাহরণমেথড ওভারলোডিংমেথড ওভাররাইডিং

কম্পাইল-টাইম উদাহরণ (ওভারলোডিং)

class CompileTimePoly {
    void display() { System.out.println("প্যারামিটার ছাড়া"); }
    void display(String val) { System.out.println("প্যারামিটারসহ: " + val); }
}
public class Main {
    public static void main(String[] args) {
        CompileTimePoly obj = new CompileTimePoly();
        obj.display();
        obj.display("Polymorphism");
    }
}

রান-টাইম উদাহরণ (ওভাররাইডিং)

class Parent {
    public void display() { System.out.println("Parent: Overridden Method"); }
}
class Child extends Parent {
    @Override
    public void display() { System.out.println("Child: Overriding Method"); }
}
public class Main {
    public static void main(String[] args) {
        Parent obj = new Child(); // আপকাস্টিং
        obj.display(); // Child-র display() কল হবে
    }
}
  1. জাভাতে Exception এবং Error-এর পার্থক্য

  2. জাভাতে Serialization এবং Externalization-এর পার্থক্য

  3. জাভাতে Iterator এবং Enumeration-এর পার্থক্য

  4. জাভাতে ArrayList এবং HashSet-এর পার্থক্য