बाइंडिंग मेथड कॉल और मेथड के वास्तविक कार्यान्वयन के बीच लिंक बनाने का एक तंत्र है। जावा में पॉलीमॉर्फिज्म अवधारणा के अनुसार, ऑब्जेक्ट के कई अलग-अलग रूप हो सकते हैं। ऑब्जेक्ट रूपों को कंपाइल टाइम और रन टाइम पर हल किया जा सकता है। यदि मेथड कॉल और मेथड कार्यान्वयन के बीच लिंकिंग कंपाइल टाइम पर हल हो जाती है तो हम इसे स्टेटिक बाइंडिंग कहते हैं या यदि यह रन टाइम पर हल होती है तो यह डायनामिक बाइंडिंग है। डायनामिक बाइंडिंग बाइंडिंग को हल करने के लिए ऑब्जेक्ट का उपयोग करता है लेकिन स्टेटिक बाइंडिंग क्लास के प्रकार और फील्ड का उपयोग करता है।
| क्र. सं. | मुख्य बिंदु | स्टेटिक बाइंडिंग | डायनामिक बाइंडिंग |
|---|---|---|---|
| 1 | बेसिक | यह कंपाइल टाइम पर हल होता है | यह रन टाइम पर हल होता है |
| 2 | हल करने का तंत्र | स्टेटिक बाइंडिंग क्लास के प्रकार और फील्ड का उपयोग करता है | डायनामिक बाइंडिंग बाइंडिंग को हल करने के लिए ऑब्जेक्ट का उपयोग करता है |
| 3 | उदाहरण | ओवरलोडिंग स्टेटिक बाइंडिंग का एक उदाहरण है | मेथड ओवरराइडिंग डायनामिक बाइंडिंग का उदाहरण है |
| 4 | मेथड के प्रकार | प्राइवेट, फाइनल और स्टेटिक मेथड और वेरिएबल स्टेटिक बाइंडिंग का उपयोग करते हैं | वर्चुअल मेथड डायनामिक बाइंडिंग का उपयोग करते हैं |
स्टेटिक और डायनामिक बाइंडिंग का उदाहरण
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();
}
}