Program में method के call से method की definition को जोड़ना Binding होता है |
Reference Variable और Object क्या है ?
Class का Reference Variable
यहाँ पर s ये Sample class का reference variable है |
class Sample{ public static void main(String args[]){ Sample s; // s is a reference variable of Sample } }
Class का Object
यहाँ पर B class का object बनाया गया है | लेकिन A class inherit होने की वजह से ये उसका भी Object है |
class A{ -------- } class B extends A{ public static void main(String args[]){ B b; // b is a reference variable of class B b = new Sample(); //instance/object of class B also //instance/object of class A
Java में Binding के दो प्रकार है |
- Static Binding
- Dynamic Binding
1. Static Binding
Static Binding को Early Binding भी कहा जाता है | जब compile-time पर compiler द्वारा object निश्चित होता है , इसे Static Binding कहते है |
जिस class में private, static या final method होता है वहा पर Static Binding होती है |
Compile-Time पर method को override नहीं किया जा सकता | ये methods अपने object से access होते है |
Example for Static Binding
Source Code :Output :class A{ static void disp(){ System.out.println("class A"); } } class B extends A{ static void disp(){ System.out.println("class B"); } public static void main(String args[]){ A a = new A(); B b = new B(); a.disp(); b.disp(); } }
class A class B
2. Dynamic Binding
Dynamic Binding को Late Binding भी कहा जाता है | ये Binding Compiler द्वारा compile-time पर नहीं होता | यहाँ पर classes के पास same methods होते है | यहाँ पर Method Override होता है | यहाँ पर दोनों classes के अन्दर एक ही signature का methods है |
Source Code :Output :class A{ void disp(){ System.out.println("class A"); } } class B extends A{ void disp(){ System.out.println("class B"); } public static void main(String args[]){ A a = new B(); a.disp(); } }
class B