Polymorphism হল সবচেয়ে গুরুত্বপূর্ণ OOPs ধারণাগুলির মধ্যে একটি। এটি এমন একটি ধারণা যার দ্বারা আমরা একাধিক উপায়ে একক কাজ সম্পাদন করতে পারি। দুই ধরনের পলিমরফিজম আছে একটি হল কম্পাইল-টাইম পলিমরফিজম এবং অন্যটি রান-টাইম পলিমরফিজম।
মেথড ওভারলোডিং হল কম্পাইল টাইম পলিমরফিজমের উদাহরণ এবং মেথড ওভাররাইডিং হল রান-টাইম পলিমরফিজমের উদাহরণ৷
| Sr. না। | কী | কম্পাইল-টাইম পলিমরফিজম | রানটাইম পলিমরফিজম |
|---|---|---|---|
| 1 | বেসিক | কম্পাইল টাইম পলিমারফিজম মানে কম্পাইল টাইমে বাইন্ডিং হচ্ছে | আর আন টাইম পলিমরফিজম যেখানে রান টাইমে আমরা জানতে পেরেছিলাম কোন পদ্ধতিটি চালু করতে যাচ্ছে |
| 2 | স্ট্যাটিক/ডাইনামিক বাঁধাই | এটা স্ট্যাটিক বাঁধাই মাধ্যমে অর্জন করা যেতে পারে | এটি ডাইনামিক বাইন্ডিং এর মাধ্যমে অর্জন করা যেতে পারে |
| 4. | উত্তরাধিকার | উত্তরাধিকার জড়িত নয় | উত্তরাধিকার জড়িত |
| 5 | উদাহরণ | মেথড ওভারলোডিং হল কম্পাইল টাইম পলিমরফিজমের একটি উদাহরণ | মেথড ওভাররাইডিং রানটাইম পলিমরফিজমের একটি উদাহরণ |
কম্পাইল-টাইম পলিমরফিজমের উদাহরণ
public class Main {
public static void main(String args[]) {
CompileTimePloymorphismExample obj = new CompileTimePloymorphismExample();
obj.display();
obj.display("Polymorphism");
}
}
class CompileTimePloymorphismExample {
void display() {
System.out.println("In Display without parameter");
}
void display(String value) {
System.out.println("In Display with parameter" + value);
}
} রানটাইম পলিমরফিজমের উদাহরণ
public class Main {
public static void main(String args[]) {
RunTimePolymorphismParentClassExample obj = new RunTimePolymorphismSubClassExample();
obj.display();
}
}
class RunTimePolymorphismParentClassExample {
public void display() {
System.out.println("Overridden Method");
}
}
public class RunTimePolymorphismSubClassExample extends RunTimePolymorphismParentExample {
public void display() {
System.out.println("Overriding Method");
}
}