Skip to content

Instantly share code, notes, and snippets.

@vaskoz
Created February 28, 2014 19:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vaskoz/9278389 to your computer and use it in GitHub Desktop.
Save vaskoz/9278389 to your computer and use it in GitHub Desktop.
Early vs Late Binding in Java
class A {
void print() {
System.out.println(secret());
}
String secret() {
return "A";
}
static void staticPrint() {
System.out.println(staticSecret());
}
static String staticSecret() {
return "static A";
}
}
class B extends A {
@Override String secret() {
return "B";
}
static String staticSecret() {
return "static B";
}
}
public class EarlyLateBindings {
public static void main(String[] args) {
A a = new B();
a.print(); // Late binding for all methods (virtual)
a.staticPrint(); // Early binding for Java statics
B b = (B)a;
b.staticPrint(); // Early binding for Java statics
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment