বাইন্ডিং (Binding) হলো মেথড কল এবং মেথডের আসল ইমপ্লিমেন্টেশনের মধ্যে লিংক তৈরি করার মেকানিজম। জাভাতে পলিমরফিজম কনসেপ্ট অনুযায়ী অবজেক্টের অনেক রূপ হতে পারে। অবজেক্ট রূপ কম্পাইল টাইম এবং রান টাইমে রিসল্ভ করা যায়। যদি মেথড কল ও ইমপ্লিমেন্টেশনের মধ্যে লিংকিং কম্পাইল টাইমে রিসল্ভ হয়, তবে এটাকে স্ট্যাটিক বাইন্ডিং বলা হয়। আর যদি রান টাইমে রিসল্ভ হয়, তবে এটাকে ডাইনামিক বাইন্ডিং বলা হয়। ডাইনামিক বাইন্ডিং অবজেক্ট ব্যবহার করে বাইন্ডিং রিসল্ভ করে কিন্তু স্ট্যাটিক বাইন্ডিং ক্লাসের টাইপ এবং ফিল্ড ব্যবহার করে।
| Sr. No. | Key | Static Binding | Dynamic Binding |
|---|---|---|---|
1 |
Basic |
কম্পাইল টাইমে রিসল্ভ হয় |
রান টাইমে রিসল্ভ হয় |
2 |
Resolve mechanism |
স্ট্যাটিক বাইন্ডিং ক্লাসের টাইপ ও ফিল্ড ব্যবহার করে |
ডাইনামিক বাইন্ডিং অবজেক্ট ব্যবহার করে বাইন্ডিং রিসল্ভ করে |
3 |
Example |
ওভারলোডিং (Overloading) স্ট্যাটিক বাইন্ডিং উদাহরণ |
মেথড ওভাররাইডিং (Method overriding) ডাইনামিক বাইন্ডিং উদাহরণ |
4 |
Type of Methods |
প্রাইভেট, ফাইনাল, স্ট্যাটিক মেথড ও ভেরিয়েবল স্ট্যাটিক বাইন্ডিং ব্যবহার করে |
ভার্চুয়াল মেথড ডাইনামিক বাইন্ডিং ব্যবহার করে |
Static এবং Dynamic Binding উদাহরণ
public class FastFood {
public void create() {
System.out.println("Creating in FastFood class");
}
}
public class Pizza extends FastFood {
public void create() {
System.out.println("Creating in Pizza class");
}
}
public class Main {
public static void main(String[] args) {
FastFood fastFood = new FastFood();
fastFood.create();
// Dynamic binding
FastFood pza = new Pizza();
pza.create();
}
}